Function at 0x412720
Capabilities:
Authenticate hmac
Contain obfuscated stackstrings

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x828
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401c20
mov ebx, eax
cmp ebx, 0
jne 0x412748
xor eax, eax
jmp 0x414805
xor edi, edi
jmp 0x41274c
mov dword [esp], ebx
call fcn.00402060
cmp edi, eax
jb 0x41275f
mov al, 1
jmp 0x414805
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00402070
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x11c]
mov byte [esp + 0x15c], al
mov byte [esp + 0x284], 0xfb
mov byte [esp + 0x285], 7
mov eax, 2
mov byte [esp + eax + 0x284], 0
add eax, 1
cmp eax, 6
jne 0x412792
mov dword [esp + 0x30], edi
xor eax, eax
cmp eax, 6
jae 0x4127ed
movzx esi, byte [esp + eax + 0x284]
mov edx, eax
add edx, 0xc686041
or edx, esi
mov ecx, eax
add ecx, 0x41
mov edi, eax
add edi, 0x41
or ecx, edi
and ecx, esi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x74
xor ecx, 0xba
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x284], cl
add eax, 1
jmp 0x4127a8
lea eax, [esp + 0x284]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401f40
cmp eax, 0
mov edi, dword [esp + 0x30]
je 0x4129ad
mov al, byte [esp + 0x118]
mov byte [esp + 0x160], al
mov byte [esp + 0x250], 0x16
mov byte [esp + 0x251], 0xe7
mov byte [esp + 0x252], 0x7a
mov eax, 3
mov byte [esp + eax + 0x250], 0
add eax, 1
cmp eax, 5
jne 0x412844
mov dword [esp + 0x2c], ebx
xor eax, eax
cmp eax, 5
jae 0x4128cd
mov cl, byte [esp + eax + 0x250]
movzx esi, cl
mov edi, eax
add edi, 0xef8899eb
mov edx, edi
xor edx, esi
mov esi, 0x10776614
sub esi, eax
mov ebx, 0x10776614
sub ebx, eax
and esi, ebx
or edx, esi
mov ebx, edx
xor ebx, 0xffffffff
mov esi, edx
and esi, 2
and edx, 0xfffffffd
xor edx, 0xfffffffd
imul edx, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, edx
mov edx, ebx
xor edx, edi
mov edi, dword [esp + 0x30]
mov esi, 0x14
sub esi, eax
and ebx, esi
shl ebx, 1
sub edx, ebx
add dl, cl
add dl, 0x69
mov byte [esp + eax + 0x250], dl
add eax, 1
jmp 0x41285a
lea eax, [esp + 0x250]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f40
cmp eax, 0
mov ebx, dword [esp + 0x2c]
je 0x4129ad
mov al, byte [esp + 0x114]
mov byte [esp + 0x164], al
mov byte [esp + 0x27c], 0x5b
mov byte [esp + 0x27d], 0x3f
mov eax, 2
mov byte [esp + eax + 0x27c], 0
add eax, 1
cmp eax, 7
jne 0x41291c
xor eax, eax
cmp eax, 7
jae 0x41297c
movzx edx, byte [esp + eax + 0x27c]
mov ecx, eax
add ecx, 0x35
mov esi, eax
add esi, 0x35
or ecx, esi
mov ebx, 0xca
sub ebx, eax
mov esi, 0xca
sub esi, eax
mov edi, 0xca
sub edi, eax
and esi, edi
or ebx, esi
and ebx, edx
xor edx, 0xffffffff
and ecx, edx
or ebx, ecx
add bl, 0xf7
mov byte [esp + eax + 0x27c], bl
mov ebx, dword [esp + 0x2c]
add eax, 1
jmp 0x41292e
lea eax, [esp + 0x27c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401f40
cmp eax, 0
setne al
xor al, 0xff
test al, 1
mov edi, dword [esp + 0x30]
jne 0x4129ad
jmp 0x4129b2
jmp 0x4147fd
mov al, byte [esp + 0x110]
mov byte [esp + 0x168], al
mov byte [esp + 0x274], 0x1f
mov byte [esp + 0x275], 0xeb
mov eax, 2
mov byte [esp + eax + 0x274], 0
add eax, 1
cmp eax, 8
jne 0x4129d5
xor eax, eax
cmp eax, 8
jae 0x412a23
movzx esi, byte [esp + eax + 0x274]
mov edx, eax
add edx, 0xa7
mov ecx, eax
add ecx, 0xa7
mov edi, eax
add edi, 0xa7
or ecx, edi
and ecx, esi
or edx, esi
xor ecx, edx
add cl, 0xbd
mov byte [esp + eax + 0x274], cl
add eax, 1
jmp 0x4129e7
lea eax, [esp + 0x274]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018b0
mov dword [esp + 0x2bc], eax
mov al, byte [esp + 0x10c]
mov byte [esp + 0x16c], al
mov byte [esp + 0x248], 0xae
mov byte [esp + 0x249], 0xbd
mov byte [esp + 0x24a], 0x32
mov eax, 3
mov byte [esp + eax + 0x248], 0
add eax, 1
cmp eax, 7
jne 0x412a6c
xor eax, eax
cmp eax, 7
jae 0x412abd
movzx esi, byte [esp + eax + 0x248]
mov edx, eax
add edx, 0xc27b1bcc
mov ecx, edx
shl ecx, 1
sub ecx, eax
add ecx, 0x34
and ecx, esi
or edx, esi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 6
xor ecx, 3
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x248], cl
add eax, 1
jmp 0x412a7e
lea eax, [esp + 0x248]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019e0
fnstcw word [esp + 0x5a]
movzx eax, word [esp + 0x5a]
or eax, 0xc00
mov word [esp + 0x1ce], ax
fldcw word [esp + 0x1ce]
fistp dword [esp + 0x2cc]
fldcw word [esp + 0x5a]
mov ecx, dword [esp + 0x2cc]
mov al, byte [esp + 0x108]
mov byte [esp + 0x170], al
mov byte [esp + 0x26c], 0xfd
mov byte [esp + 0x26d], 0x11
mov eax, 2
mov byte [esp + eax + 0x26c], 0
add eax, 1
cmp eax, 5
jne 0x412b26
mov dword [esp + 0xac], ecx
xor eax, eax
cmp eax, 5
jae 0x412bd5
movzx edx, byte [esp + eax + 0x26c]
mov edi, eax
add edi, 0xc884344
mov ebx, eax
add ebx, 0x44
and ebx, edx
mov esi, 0x7377bcbb
sub esi, eax
mov ecx, 0x7377bcbb
sub ecx, eax
and ecx, 0x8c4b27a7
and edi, 0x73b4d858
or ecx, edi
xor ecx, 0x73b4d858
or ecx, esi
mov esi, ecx
xor esi, 0xffffffff
or esi, edx
add ecx, esi
mov edi, eax
add edi, 0x8c884344
xor edi, edx
sub edi, edx
add edi, ebx
mov edx, ecx
add edx, 1
mov esi, ecx
and esi, 1
and edx, 0xfe
or esi, edx
mov edx, edi
xor edx, esi
xor edx, 1
add ecx, 1
and edi, ecx
or edx, edi
add dl, 0xac
mov byte [esp + eax + 0x26c], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412b3f
lea eax, [esp + 0x26c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.004019e0
fnstcw word [esp + 0x58]
movzx eax, word [esp + 0x58]
or eax, 0xc00
mov word [esp + 0x1cc], ax
fldcw word [esp + 0x1cc]
fistp dword [esp + 0x2c8]
fldcw word [esp + 0x58]
mov ebx, dword [esp + 0x2c8]
lea eax, [esp + 0x424]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2bc]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040be90
lea eax, [esp + 0x424]
lea ecx, [esp + 0x38]
lea edx, [esp + 0x268]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040c5c0
test al, 1
mov edi, dword [esp + 0x30]
jne 0x412c84
mov ebx, dword [esp + 0x2c]
jmp 0x4147fb
cmp ebx, 0
sete al
test al, 1
mov byte [esp + 0x4b], al
jne 0x412c97
jmp 0x413d48
mov al, byte [esp + 0x104]
mov byte [esp + 0x174], al
mov byte [esp + 0x260], 0xfc
mov byte [esp + 0x261], 0x4f
mov eax, 2
mov byte [esp + eax + 0x260], 0
add eax, 1
cmp eax, 8
jne 0x412cba
xor eax, eax
cmp eax, 8
jae 0x412d0e
movzx edx, byte [esp + eax + 0x260]
mov ecx, eax
add ecx, 0xed
mov esi, eax
add esi, 0x6d
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
add cl, 0x5f
mov byte [esp + eax + 0x260], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
or eax, 1
add eax, edx
jmp 0x412ccc
lea eax, [esp + 0x260]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018b0
cmp eax, 0
je 0x412f3d
mov esi, eax
mov dword [esp], eax
call fcn.00414820
mov edi, eax
mov ebx, edi
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412d57
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], esi
mov esi, eax
mov dword [esp + 0xc], 0
call fcn.0040be90
xor eax, eax
lea eax, [esp + 0x100]
mov dword [esp], 0
mov dword [esp + 4], esi
mov dword [esp + 0x2b4], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44aeec]
sub esp, 0x18
mov dword [esp + 0x29c], eax
mov cl, byte [esp + 0xfc]
mov byte [esp + 0x178], cl
mov byte [esp + 0x54], 0x61
mov byte [esp + 0x55], 0x7b
mov byte [esp + 0x56], 0x7a
mov byte [esp + 0x57], 0xb9
xor ecx, ecx
cmp ecx, 4
jae 0x412e3d
movzx edx, byte [esp + ecx + 0x54]
mov eax, esi
mov esi, ecx
shl esi, 1
and esi, 0x9dde587e
mov ebx, ecx
xor ebx, 0x4eef2c3f
add ebx, esi
xor ebx, edx
mov esi, ebx
add esi, 0xc4
mov edx, ebx
and edx, 1
mov edi, 0x8aabdd3b
sub edi, ebx
mov ebx, edi
and ebx, 8
and esi, 0xf7
or ebx, esi
mov esi, eax
xor ebx, 9
and edi, 1
xor edi, 1
or ebx, edi
add edx, ebx
mov byte [esp + ecx + 0x54], dl
add ecx, 1
jmp 0x412de2
mov ecx, dword [esp + 0x54]
cmp dword [esp + 0x29c], ecx
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
jne 0x412e72
jmp 0x412e54
mov dword [esp], esi
call fcn.00409740
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
mov eax, 4
jmp 0x412f2f
mov eax, dword [esp + 0x100]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412e8f
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov ebx, dword [0x44aeec]
mov ecx, dword [esp + 0x100]
xor edx, edx
lea edx, [esp + 0x100]
mov dword [esp], 0
mov dword [esp + 0x28], esi
mov dword [esp + 4], esi
mov esi, dword [esp + 0x2b4]
mov dword [esp + 8], esi
mov esi, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call ebx
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x412f17
jmp 0x412ee6
jmp 0x412ee8
mov dword [esp], esi
call fcn.00409740
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x28]
jmp 0x412efa
jmp 0x412efc
mov dword [esp], esi
call fcn.00409740
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
mov eax, 4
jmp 0x412f2d
mov ebx, dword [esp + 0x28]
jmp 0x412f1d
mov dword [esp], ebx
call fcn.00409740
xor eax, eax
mov ebx, dword [esp + 0x2c]
jmp 0x412f2d
jmp 0x412f2f
cmp eax, 0
je 0x4134b8
jmp 0x4134ba
call fcn.00409e40
and eax, 0xf
xor ecx, ecx
sub ecx, eax
mov esi, 0x10
sub esi, ecx
xor ebx, ebx
lea edi, [esp + 0x3e4]
cmp ebx, esi
jb 0x41315a
mov word [edi], 0
mov al, byte [esp + 0xe4]
mov byte [esp + 0x17c], al
mov byte [esp + 0xe8], 0xdf
mov byte [esp + 0xe9], 0xfb
mov byte [esp + 0xea], 0x4e
mov byte [esp + 0xeb], 0xf9
mov byte [esp + 0xec], 0x43
mov byte [esp + 0xed], 0xff
mov byte [esp + 0xee], 0x4d
mov byte [esp + 0xef], 0xfd
mov byte [esp + 0xf0], 0x4c
mov byte [esp + 0xf1], 0xf3
mov byte [esp + 0xf2], 0x29
mov byte [esp + 0xf3], 0xf1
mov byte [esp + 0xf4], 0x5c
mov byte [esp + 0xf5], 0xf7
mov byte [esp + 0xf6], 0xf6
mov byte [esp + 0xf7], 0xf5
mov eax, 0x10
mov byte [esp + eax + 0xe8], 0
add eax, 1
cmp eax, 0x11
jne 0x412ff9
xor eax, eax
cmp eax, 0x11
jae 0x41302d
mov cl, byte [esp + eax + 0xe8]
mov dl, al
add dl, 0x7f
xor dl, cl
add dl, 0x85
mov byte [esp + eax + 0xe8], dl
add eax, 1
jmp 0x41300b
lea eax, [esp + 0x384]
lea ecx, [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b2b0
lea ecx, [esp + 0x3e4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b2b0
lea edx, [esp + 0x384]
mov ecx, eax
xor ecx, 0xffffffff
and ecx, edx
xor edx, 0xffffffff
and eax, edx
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x384]
lea ecx, [esp + 0xe0]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2b8], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44aeec]
sub esp, 0x18
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0xdc]
mov byte [esp + 0x180], al
mov byte [esp + 0x50], 7
mov byte [esp + 0x51], 0x39
mov byte [esp + 0x52], 0x36
mov byte [esp + 0x53], 0x77
xor edi, edi
cmp edi, 4
jae 0x413147
movzx edx, byte [esp + edi + 0x50]
mov eax, edi
add eax, 0xbb178af6
mov ebx, edx
shl ebx, 1
xor ebx, 0xffffffff
add ebx, edx
and ebx, 0x6f94a792
and edx, 0x6d
mov ecx, 0x44e87509
sub ecx, edi
mov esi, 0x44e87509
sub esi, edi
or ecx, esi
and ecx, 0x6f94a792
xor eax, 0x6f94a792
or edx, ebx
or ecx, eax
mov eax, edx
and eax, ecx
shl eax, 1
add edx, ecx
sub edx, eax
add dl, 0x32
mov byte [esp + edi + 0x50], dl
mov eax, edi
add eax, 3
xor ecx, ecx
sub ecx, edi
and ecx, 2
and eax, 5
sub eax, ecx
mov edi, eax
jmp 0x4130df
mov eax, dword [esp + 0x50]
cmp dword [esp + 0x2a0], eax
mov ebx, dword [esp + 0x2c]
jne 0x413181
jmp 0x41319d
call fcn.00409e40
mov ecx, 0x24
cdq
idiv ecx
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, edi
add ecx, 2
mov word [edi], ax
sub ebx, 0xffffffff
mov edi, ecx
jmp 0x412f59
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
xor esi, esi
mov eax, 4
mov edi, dword [esp + 0x30]
jmp 0x4134ab
mov eax, dword [esp + 0xe0]
sub eax, 0xfffffffc
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov edi, dword [esp + 0x30]
jne 0x4131c1
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov esi, dword [0x44aeec]
mov ecx, dword [esp + 0xe0]
xor edx, edx
lea edx, [esp + 0x384]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2b8]
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xe0]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
cmp eax, 0
jge 0x41323a
jmp 0x413218
mov esi, dword [esp + 0x28]
mov dword [esp], esi
call fcn.00409740
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
mov eax, 4
jmp 0x4134ab
mov ecx, dword [esp + 0xac]
cmp ecx, 0
jne 0x41332f
mov al, byte [esp + 0xd8]
mov byte [esp + 0x184], al
mov byte [esp + 0x238], 0x2e
mov byte [esp + 0x239], 1
mov byte [esp + 0x23a], 0x67
mov byte [esp + 0x23b], 3
mov byte [esp + 0x23c], 0x7c
mov byte [esp + 0x23d], 5
mov byte [esp + 0x23e], 0x63
mov byte [esp + 0x23f], 7
mov byte [esp + 0x240], 8
mov byte [esp + 0x241], 9
mov eax, 0xa
mov esi, dword [esp + 0x28]
mov byte [esp + eax + 0x238], 0
add eax, 1
cmp eax, 0xd
jne 0x4132b1
xor eax, eax
cmp eax, 0xd
jae 0x413317
movzx esi, byte [esp + eax + 0x238]
mov edx, eax
xor edx, 0x80
and edx, esi
shl edx, 1
mov ecx, eax
add ecx, 0x56bf6d80
add ecx, esi
mov esi, ecx
xor esi, edx
xor edx, 0xffffffff
and ecx, edx
shl ecx, 1
sub ecx, esi
mov esi, dword [esp + 0x28]
xor cl, 0x80
mov byte [esp + eax + 0x238], cl
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
add edx, ecx
or eax, 1
add eax, edx
jmp 0x4132c3
lea eax, [esp + 0x238]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414c00
jmp 0x4134a7
mov esi, dword [esp + 0x28]
cmp ecx, 1
sete al
jmp 0x41333b
test al, 1
jne 0x413344
jmp 0x413404
mov al, byte [esp + 0xd4]
mov byte [esp + 0x188], al
mov byte [esp + 0x228], 0x1e
mov byte [esp + 0x229], 0x4b
mov byte [esp + 0x22a], 0xd6
mov byte [esp + 0x22b], 0x49
mov byte [esp + 0x22c], 0xdc
mov byte [esp + 0x22d], 0x47
mov byte [esp + 0x22e], 0xd2
mov byte [esp + 0x22f], 0x45
mov byte [esp + 0x230], 0x44
mov byte [esp + 0x231], 0x43
mov eax, 0xa
mov byte [esp + eax + 0x228], 0
add eax, 1
cmp eax, 0xf
jne 0x4133a7
xor eax, eax
cmp eax, 0xf
jae 0x4133ec
mov dl, byte [esp + eax + 0x228]
mov esi, eax
and esi, 0xd
xor esi, 0xd
mov ecx, eax
and ecx, 0xf2
sub ecx, esi
mov esi, dword [esp + 0x28]
xor cl, dl
add cl, 0x41
mov byte [esp + eax + 0x228], cl
add eax, 1
jmp 0x4133b9
lea eax, [esp + 0x228]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414c00
jmp 0x4134a7
cmp ecx, 2
jne 0x4134a7
mov al, byte [esp + 0xd0]
mov byte [esp + 0x18c], al
mov byte [esp + 0x5c], 0xb2
mov byte [esp + 0x5d], 0x67
mov byte [esp + 0x5e], 0xf6
mov byte [esp + 0x5f], 0x61
mov byte [esp + 0x60], 0xed
mov byte [esp + 0x61], 0x63
mov byte [esp + 0x62], 0xb1
mov byte [esp + 0x63], 0x5d
mov byte [esp + 0x64], 0x5c
mov byte [esp + 0x65], 0x5f
mov eax, 0xa
mov byte [esp + eax + 0x5c], 0
add eax, 1
cmp eax, 0xc
jne 0x413452
xor eax, eax
cmp eax, 0xc
jae 0x413495
movzx edx, byte [esp + eax + 0x5c]
mov esi, eax
add esi, 0x99
mov ecx, edx
xor ecx, 0xffffffff
and esi, ecx
mov ecx, 0x66
sub ecx, eax
and ecx, edx
or ecx, esi
mov esi, dword [esp + 0x28]
add cl, 3
mov byte [esp + eax + 0x5c], cl
add eax, 1
jmp 0x413461
lea eax, [esp + 0x5c]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00414c00
jmp 0x4134a7
xor eax, eax
jmp 0x4134ab
cmp eax, 0
sete cl
test cl, 1
jne 0x4134b8
jmp 0x4134ba
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x4134c9
jmp 0x4147fb
lea eax, [esp + 0x25c]
xor ecx, ecx
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], 0x100002
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 5
mov dword [esp + 0x14], 0x60
mov dword [esp + 0x18], 0x80
call fcn.0043e340
mov dword [esp + 0x258], eax
cmp eax, 0
jl 0x41365f
mov dword [esp + 0x28], esi
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x25c]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043eaf0
mov dword [esp + 0x258], eax
mov eax, dword [esp + 0x25c]
mov dword [esp + 0x2b0], eax
mov al, byte [esp + 0x150]
mov byte [esp + 0x1b8], al
mov byte [esp + 0x154], 0xc5
mov byte [esp + 0x155], 0xda
mov byte [esp + 0x156], 0xdb
mov byte [esp + 0x157], 0xd8
mov eax, 4
mov byte [esp + eax + 0x154], 0
add eax, 1
cmp eax, 5
jne 0x41358e
xor eax, eax
cmp eax, 5
jae 0x4135df
movzx edx, byte [esp + eax + 0x154]
mov ecx, 0x30
sub ecx, eax
mov esi, 0x30
sub esi, eax
and ecx, esi
xor ecx, 0xffffffff
and ecx, edx
shl ecx, 1
mov ebx, eax
add ebx, 0xcf
add ebx, edx
sub ebx, ecx
add bl, 0xf5
mov byte [esp + eax + 0x154], bl
add eax, 1
jmp 0x4135a0
mov ecx, dword [esp + 0x154]
xor ebx, ebx
mov esi, dword [esp + 0x28]
cmp ebx, dword [0x44aef0]
jb 0x4135f6
jmp 0x41365b
mov eax, dword [0x44aef4]
cmp dword [eax + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x41360c
jmp 0x41364f
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x41364f
mov dword [esp + 0x298], ecx
mov ecx, dword [0x44aef8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0xc], eax
mov byte [esp + 0x48], dl
call fcn.0043be00
mov dl, byte [esp + 0x48]
mov ecx, dword [esp + 0x298]
test dl, 1
je 0x413656
jmp 0x41365b
add ebx, 1
jmp 0x4135ec
mov ebx, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
mov dword [esp + 0x38], 0
cmp dword [esp + 0x258], 0
setge al
test al, 1
mov ecx, dword [esp + 0xac]
jne 0x41369d
jmp 0x41368b
mov dword [esp + 0x34], 0
mov eax, 4
jmp 0x413d3a
cmp ecx, 1
jne 0x413a5b
mov al, byte [esp + 0xcc]
mov byte [esp + 0x190], al
mov byte [esp + 0x4c], 0x52
mov byte [esp + 0x4d], 0x5b
mov byte [esp + 0x4e], 0xce
mov eax, 3
mov byte [esp + eax + 0x4c], 0
add eax, 1
cmp eax, 4
jne 0x4136c8
xor eax, eax
cmp eax, 4
jae 0x4136f3
mov cl, byte [esp + eax + 0x4c]
mov dl, al
add dl, 0x52
xor dl, cl
add dl, 0x66
mov byte [esp + eax + 0x4c], dl
add eax, 1
jmp 0x4136d7
lea eax, [esp + 0x4c]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018b0
mov edi, eax
mov al, byte [esp + 0xc8]
mov byte [esp + 0x194], al
mov byte [esp + 0x220], 0x11
mov byte [esp + 0x221], 0xe3
mov byte [esp + 0x222], 0x72
mov eax, 3
mov byte [esp + eax + 0x220], 0
add eax, 1
cmp eax, 7
jne 0x413734
mov dword [esp + 0x28], esi
xor eax, eax
cmp eax, 7
jae 0x41377b
mov dl, byte [esp + eax + 0x220]
mov esi, eax
shl esi, 1
and esi, 0xd8
mov ecx, eax
xor ecx, 0xec
add ecx, esi
xor cl, dl
add cl, 0x64
mov byte [esp + eax + 0x220], cl
add eax, 1
jmp 0x41374a
lea eax, [esp + 0x220]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018b0
mov dword [esp + 0xa8], eax
mov esi, dword [esp + 0x28]
mov dword [esp], esi
call fcn.00414c50
mov ebx, eax
cmp edi, 0
setne al
mov dword [esp + 0xa4], 0
mov byte [esp + 0x4a], al
test al, 1
jne 0x4137c2
jmp 0x4137d4
mov dword [esp], edi
call fcn.00409840
sub eax, 0xffffffff
mov dword [esp + 0xa4], eax
cmp dword [esp + 0xa8], 0
setne cl
xor eax, eax
mov byte [esp + 0x3f], cl
test cl, 1
jne 0x4137ec
jmp 0x413807
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
call fcn.00409840
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
jmp 0x413807
mov ecx, ebx
and ecx, 9
or ebx, 9
add ebx, ecx
mov ecx, ebx
mov edx, dword [esp + 0xa4]
and ecx, edx
shl ecx, 1
xor ebx, edx
add ebx, ecx
add ebx, 0xa8b51639
mov dword [esp + 0x2c0], eax
add ebx, eax
sub ebx, 0xa8b51639
mov eax, ebx
and eax, 1
shl eax, 1
xor ebx, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41385b
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xc4]
mov byte [esp + 0x198], al
mov byte [esp + 0x208], 0xf2
mov byte [esp + 0x209], 0x5b
mov byte [esp + 0x20a], 0xd1
mov byte [esp + 0x20b], 0x59
mov byte [esp + 0x20c], 0xea
mov byte [esp + 0x20d], 0x5f
mov byte [esp + 0x20e], 0xfa
mov byte [esp + 0x20f], 0x5d
mov byte [esp + 0x210], 0xe0
mov byte [esp + 0x211], 0x53
mov byte [esp + 0x212], 0xee
mov byte [esp + 0x213], 0x51
mov byte [esp + 0x214], 0x25
mov byte [esp + 0x215], 0x57
mov byte [esp + 0x216], 0x20
mov byte [esp + 0x217], 0x55
mov byte [esp + 0x218], 0x54
mov byte [esp + 0x219], 0xab
mov eax, 0x12
mov byte [esp + eax + 0x208], 0
add eax, 1
cmp eax, 0x16
jne 0x41390a
mov dword [esp + 0x2c4], edi
xor eax, eax
cmp eax, 0x16
jae 0x413976
mov cl, byte [esp + eax + 0x208]
mov edx, eax
and edx, 0xed
mov edi, eax
and edi, 0xed
mov esi, eax
and esi, 2
xor esi, 2
imul esi, edi
mov edi, eax
and edi, 2
or edx, 2
imul edx, edi
add edx, esi
mov esi, dword [esp + 0x28]
mov ebx, eax
xor ebx, 0xef
add ebx, edx
xor bl, cl
add bl, 0x55
mov byte [esp + eax + 0x208], bl
add eax, 1
jmp 0x413923
lea eax, [esp + 0x208]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b2b0
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], esi
call fcn.0040b2b0
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
cmp esi, 0
je 0x4139c5
mov dword [esp], esi
call fcn.00409740
jmp 0x4139c5
test byte [esp + 0x4a], 1
jne 0x4139d6
mov edi, dword [esp + 0x30]
mov al, byte [esp + 0x3f]
jmp 0x413a16
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov eax, dword [esp + 0xa4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040be90
shl eax, 1
add edi, eax
mov ebx, edi
mov edi, dword [esp + 0x30]
mov al, byte [esp + 0x3f]
test al, 1
jne 0x413a1c
jmp 0x413a4e
mov eax, ebx
add eax, 2
mov word [ebx], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2c0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040be90
xor esi, esi
xor ecx, ecx
mov ebx, dword [esp + 0x2c]
jmp 0x413d38
mov dword [esp + 0x34], 0
cmp ecx, 2
je 0x413a6d
jmp 0x413d38
mov dword [esp], esi
call fcn.00414c50
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffe3
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413aa4
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xb8]
mov byte [esp + 0x19c], al
mov byte [esp + 0xbc], 0x12
mov byte [esp + 0xbd], 0x31
mov byte [esp + 0xbe], 0x32
mov byte [esp + 0xbf], 0x33
mov eax, 4
mov byte [esp + eax + 0xbc], 0
add eax, 1
cmp eax, 5
jne 0x413ae3
xor eax, eax
cmp eax, 5
jae 0x413b3a
movzx edx, byte [esp + eax + 0xbc]
mov ecx, eax
add ecx, 0xa98d25b4
mov dword [esp + 0x28], esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
mov esi, dword [esp + 0x28]
mov edx, ecx
shl edx, 1
and edx, 0xf6
xor ecx, 0x7b
add ecx, edx
add cl, 1
mov byte [esp + eax + 0xbc], cl
add eax, 1
jmp 0x413af5
mov al, byte [esp + 0xb4]
mov byte [esp + 0x1a0], al
mov byte [esp + 0x68], 0x60
mov byte [esp + 0x69], 0xf1
mov byte [esp + 0x6a], 0x65
mov byte [esp + 0x6b], 0xf3
mov byte [esp + 0x6c], 0x63
mov byte [esp + 0x6d], 0xed
mov byte [esp + 0x6e], 0x73
mov byte [esp + 0x6f], 0xef
mov byte [esp + 0x70], 0x7a
mov byte [esp + 0x71], 0xe9
mov byte [esp + 0x72], 0x79
mov byte [esp + 0x73], 0xeb
mov byte [esp + 0x74], 0x7c
mov byte [esp + 0x75], 0xe5
mov byte [esp + 0x76], 0x7b
mov byte [esp + 0x77], 0xe7
mov byte [esp + 0x78], 0x74
mov byte [esp + 0x79], 0xe1
mov byte [esp + 0x7a], 0x76
mov byte [esp + 0x7b], 0xe3
mov byte [esp + 0x7c], 0xbc
mov byte [esp + 0x7d], 0x9d
mov byte [esp + 0x7e], 0x4b
mov byte [esp + 0x7f], 0x9f
mov byte [esp + 0x80], 5
mov byte [esp + 0x81], 0x99
mov byte [esp + 0x82], 0x12
mov byte [esp + 0x83], 0x9b
mov byte [esp + 0x84], 9
mov byte [esp + 0x85], 0x95
mov byte [esp + 0x86], 0x75
mov byte [esp + 0x87], 0x97
mov byte [esp + 0x88], 0xb0
mov byte [esp + 0x89], 0x91
mov byte [esp + 0x8a], 0x70
mov byte [esp + 0x8b], 0x93
mov byte [esp + 0x8c], 5
mov byte [esp + 0x8d], 0x8d
mov byte [esp + 0x8e], 0x1e
mov byte [esp + 0x8f], 0x8f
mov byte [esp + 0x90], 0x69
mov byte [esp + 0x91], 0x89
mov byte [esp + 0x92], 0x19
mov byte [esp + 0x93], 0x8b
mov byte [esp + 0x94], 0x17
mov byte [esp + 0x95], 0x85
mov byte [esp + 0x96], 0xa6
mov byte [esp + 0x97], 0x87
mov byte [esp + 0x98], 0x55
mov byte [esp + 0x99], 0x81
mov byte [esp + 0x9a], 0x1c
mov byte [esp + 0x9b], 0x83
mov byte [esp + 0x9c], 0x9c
mov byte [esp + 0x9d], 0xbd
mov byte [esp + 0x9e], 0x9c
mov byte [esp + 0x9f], 0xbf
mov byte [esp + 0xa0], 0xb8
mov byte [esp + 0xa1], 0xb9
mov eax, 0x3a
mov byte [esp + eax + 0x68], 0
add eax, 1
cmp eax, 0x3c
jne 0x413cd5
xor eax, eax
cmp eax, 0x3c
jae 0x413d00
mov cl, byte [esp + eax + 0x68]
mov dl, al
add dl, 0xac
xor dl, cl
add dl, 0xa4
mov byte [esp + eax + 0x68], dl
add eax, 1
jmp 0x413ce4
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b2b0
mov dword [esp], eax
mov dword [esp + 4], esi
call fcn.0040b2b0
lea ecx, [esp + 0xbc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.0040b2b0
mov ecx, 2
xor eax, eax
cmp eax, 0
je 0x414063
jmp 0x4147fb
call fcn.00414c70
xor ebx, 1
mov ecx, dword [esp + 0xac]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
mov dword [esp + 0x34], 0
test al, 1
mov esi, 0
mov ebx, dword [esp + 0x2c]
jne 0x413d7b
jmp 0x414063
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00414820
mov ebx, eax
add ebx, 0x5d47bd29
add ebx, 1
sub ebx, 0x5d47bd29
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413db0
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov edi, eax
mov eax, dword [esp + 0x38]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040be90
mov ecx, dword [esp + 0x268]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
mov eax, 0x18
sub eax, ecx
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413e0c
mov ecx, eax
mov dword [esp], ecx
call fcn.00409730
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xb0]
mov byte [esp + 0x1a4], al
mov byte [esp + 0x1d0], 0x54
mov byte [esp + 0x1d1], 0xc7
mov byte [esp + 0x1d2], 0x57
mov byte [esp + 0x1d3], 0xc1
mov byte [esp + 0x1d4], 0x59
mov byte [esp + 0x1d5], 0xc3
mov byte [esp + 0x1d6], 0x6d
mov byte [esp + 0x1d7], 0xcd
mov byte [esp + 0x1d8], 0x5e
mov byte [esp + 0x1d9], 0xcf
mov byte [esp + 0x1da], 0x53
mov byte [esp + 0x1db], 0xc9
mov byte [esp + 0x1dc], 0x60
mov byte [esp + 0x1dd], 0xcb
mov byte [esp + 0x1de], 0x65
mov byte [esp + 0x1df], 0xb5
mov byte [esp + 0x1e0], 0x20
mov byte [esp + 0x1e1], 0xb7
mov byte [esp + 0x1e2], 0x22
mov byte [esp + 0x1e3], 0xb1
mov byte [esp + 0x1e4], 0x50
mov byte [esp + 0x1e5], 0xb3
mov byte [esp + 0x1e6], 0x65
mov byte [esp + 0x1e7], 0xbd
mov byte [esp + 0x1e8], 0x13
mov byte [esp + 0x1e9], 0xbf
mov byte [esp + 0x1ea], 0x26
mov byte [esp + 0x1eb], 0xb9
mov byte [esp + 0x1ec], 0x17
mov byte [esp + 0x1ed], 0xbb
mov byte [esp + 0x1ee], 0x17
mov byte [esp + 0x1ef], 0xa5
mov byte [esp + 0x1f0], 0x44
mov byte [esp + 0x1f1], 0xa7
mov byte [esp + 0x1f2], 4
mov byte [esp + 0x1f3], 0xa1
mov byte [esp + 0x1f4], 0x3b
mov byte [esp + 0x1f5], 0xa3
mov byte [esp + 0x1f6], 0x32
mov byte [esp + 0x1f7], 0xad
mov byte [esp + 0x1f8], 0xf
mov byte [esp + 0x1f9], 0xaf
mov byte [esp + 0x1fa], 0x33
mov byte [esp + 0x1fb], 0xa9
mov byte [esp + 0x1fc], 0x35
mov byte [esp + 0x1fd], 0xab
mov byte [esp + 0x1fe], 0x4a
mov byte [esp + 0x1ff], 0x95
mov byte [esp + 0x200], 0x94
mov byte [esp + 0x201], 0x97
mov eax, 0x32
mov ebx, dword [esp + 0x2c]
mov byte [esp + eax + 0x1d0], 0
add eax, 1
cmp eax, 0x35
jne 0x413fbf
xor eax, eax
cmp eax, 0x35
jae 0x414027
movzx ecx, byte [esp + eax + 0x1d0]
mov esi, eax
add esi, 0x8a3c2bb1
mov edx, 0x35c3d44e
sub edx, eax
and edx, 0x3c3729ca
and esi, 0xc3c8d635
xor ecx, 0x3c3729ca
or edx, esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
mov edx, ecx
sub edx, esi
and ecx, 1
or edx, 1
add edx, 0x8a
add edx, ecx
mov byte [esp + eax + 0x1d0], dl
add eax, 1
jmp 0x413fd1
lea eax, [esp + 0x1d0]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0040b2b0
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040b2b0
jmp 0x41404c
mov dword [esp], edi
call fcn.00409740
mov edi, dword [esp + 0x30]
jmp 0x41405a
xor esi, esi
mov ecx, 2
jmp 0x414063
test ecx, ecx
je 0x414084
jmp 0x414069
mov eax, ecx
sub eax, 1
je 0x414246
jmp 0x414076
sub ecx, 2
je 0x4144f6
jmp 0x4147c2
mov al, byte [esp + 0x4b]
test al, 1
jne 0x414091
jmp 0x414246
lea edi, [esp + 0x340]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x340], 0x44
mov eax, dword [0x449ee4]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043dad0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x340]
lea edx, [esp + 0x2ec]
mov dword [esp], esi
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x41423d
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0x144]
mov byte [esp + 0x1bc], al
mov byte [esp + 0x148], 0xc5
mov byte [esp + 0x149], 0xda
mov byte [esp + 0x14a], 0xdb
mov byte [esp + 0x14b], 0xd8
mov eax, 4
mov byte [esp + eax + 0x148], 0
add eax, 1
cmp eax, 5
jne 0x414168
mov dword [esp + 0x28], esi
xor eax, eax
cmp eax, 5
jae 0x4141c1
movzx edx, byte [esp + eax + 0x148]
mov ecx, 0x30
sub ecx, eax
mov esi, 0x30
sub esi, eax
and ecx, esi
xor ecx, 0xffffffff
and ecx, edx
shl ecx, 1
mov ebx, eax
add ebx, 0xcf
add ebx, edx
sub ebx, ecx
add bl, 0xf5
mov byte [esp + eax + 0x148], bl
mov ebx, dword [esp + 0x2c]
add eax, 1
jmp 0x41417e
mov ecx, dword [esp + 0x148]
xor edi, edi
mov esi, dword [esp + 0x28]
cmp edi, dword [0x44aef0]
jb 0x4141d8
jmp 0x41423d
mov eax, dword [0x44aef4]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x4141ee
jmp 0x414229
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414229
mov dword [esp + 0x28c], ecx
mov ecx, dword [0x44aef8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
call fcn.0043be00
mov ecx, dword [esp + 0x28c]
test bl, 1
je 0x414234
mov ebx, dword [esp + 0x2c]
jmp 0x41423d
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x4141ce
mov edi, dword [esp + 0x30]
jmp 0x4147c2
mov eax, dword [0x449ee4]
mov dword [esp], eax
mov dword [esp + 4], 0x737de518
call fcn.0043dad0
cmp eax, 0
setne cl
test cl, 1
jne 0x414268
jmp 0x414268
test cl, 1
jne 0x41426f
xor eax, eax
jmp 0x414271
mov ecx, dword [esp + 0x38]
xor edx, edx
lea edx, [0x422180]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call eax
sub esp, 0x18
cmp eax, 0
je 0x4144f1
mov dword [esp + 0x2d4], 0xffffffff
mov dword [esp + 0x2d0], 0xdc3cba00
mov cl, byte [esp + 0x1a8]
mov byte [esp + 0x1b4], cl
mov byte [esp + 0x1ac], 0xc5
mov byte [esp + 0x1ad], 0xda
mov byte [esp + 0x1ae], 0xdb
mov byte [esp + 0x1af], 0xd8
mov ecx, 4
mov byte [esp + ecx + 0x1ac], 0
add ecx, 1
cmp ecx, 5
jne 0x4142fb
xor ecx, ecx
cmp ecx, 5
jae 0x414350
movzx edi, byte [esp + ecx + 0x1ac]
mov edx, 0x30
sub edx, ecx
mov ebx, esi
mov esi, 0x30
sub esi, ecx
and edx, esi
mov esi, ebx
xor edx, 0xffffffff
and edx, edi
shl edx, 1
mov ebx, ecx
add ebx, 0xcf
add ebx, edi
sub ebx, edx
add bl, 0xf5
mov byte [esp + ecx + 0x1ac], bl
add ecx, 1
jmp 0x41430d
mov edi, dword [esp + 0x1ac]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x44aef0]
jb 0x41436b
jmp 0x4143ec
mov ecx, dword [0x44aef4]
cmp dword [ecx + ebx*8], 0x4c697c35
sete dl
mov byte [esp + 0x49], dl
test dl, 1
jne 0x414386
jmp 0x4143d9
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x4143db
mov ecx, dword [0x44aef8]
mov dword [esp + 0x28], esi
xor esi, esi
lea esi, [esp + 0x2d0]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 0xc
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov esi, eax
call fcn.0043be00
mov eax, esi
mov esi, dword [esp + 0x28]
mov ecx, 1
jmp 0x4143db
xor ecx, ecx
test byte [esp + 0x49], 1
je 0x4143e4
jmp 0x4143ec
add ebx, 1
jmp 0x414359
cmp ecx, 2
jne 0x4143f1
mov cl, byte [esp + 0x138]
mov byte [esp + 0x1c0], cl
mov byte [esp + 0x13c], 0xc5
mov byte [esp + 0x13d], 0xda
mov byte [esp + 0x13e], 0xdb
mov byte [esp + 0x13f], 0xd8
mov ecx, 4
mov byte [esp + ecx + 0x13c], 0
add ecx, 1
cmp ecx, 5
jne 0x414424
xor ecx, ecx
cmp ecx, 5
jae 0x414479
movzx edi, byte [esp + ecx + 0x13c]
mov edx, 0x30
sub edx, ecx
mov ebx, esi
mov esi, 0x30
sub esi, ecx
and edx, esi
mov esi, ebx
xor edx, 0xffffffff
and edx, edi
shl edx, 1
mov ebx, ecx
add ebx, 0xcf
add ebx, edi
sub ebx, edx
add bl, 0xf5
mov byte [esp + ecx + 0x13c], bl
add ecx, 1
jmp 0x414436
mov edi, dword [esp + 0x13c]
xor ebx, ebx
cmp ebx, dword [0x44aef0]
jb 0x41448c
jmp 0x4144e9
mov ecx, dword [0x44aef4]
cmp dword [ecx + ebx*8], 0x1b6183f2
sete dl
test dl, 1
jne 0x4144a3
jmp 0x4144dd
mov ecx, dword [ecx + ebx*8 + 4]
cmp ecx, edi
je 0x4144dd
mov byte [esp + 0x47], dl
mov edx, dword [0x44aef8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], esi
mov esi, eax
call fcn.0043be00
mov dl, byte [esp + 0x47]
mov eax, esi
mov esi, dword [esp + 0x28]
test dl, 1
je 0x4144e4
jmp 0x4144e9
add ebx, 1
jmp 0x414482
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x30]
jmp 0x4147c2
call fcn.00414c70
lea edi, [esp + 0x2fc]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2fc], 0x44
mov eax, dword [0x449ee4]
mov dword [esp], eax
mov dword [esp + 4], 0xef6ed546
call fcn.0043dad0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2fc]
lea edx, [esp + 0x2dc]
mov dword [esp], 0
mov edi, dword [esp + 0x34]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
mov edi, dword [esp + 0x30]
jne 0x41459f
jmp 0x4147c2
lea eax, [esp + 0x2dc]
add eax, 4
mov eax, dword [eax]
mov dword [esp + 0x2ac], eax
mov al, byte [esp + 0x12c]
mov byte [esp + 0x1c4], al
mov byte [esp + 0x130], 0xc5
mov byte [esp + 0x131], 0xda
mov byte [esp + 0x132], 0xdb
mov byte [esp + 0x133], 0xd8
mov eax, 4
mov byte [esp + eax + 0x130], 0
add eax, 1
cmp eax, 5
jne 0x4145e5
xor eax, eax
cmp eax, 5
jae 0x41463a
movzx edx, byte [esp + eax + 0x130]
mov ecx, 0x30
sub ecx, eax
mov edi, esi
mov esi, 0x30
sub esi, eax
and ecx, esi
mov esi, edi
xor ecx, 0xffffffff
and ecx, edx
shl ecx, 1
mov ebx, eax
add ebx, 0xcf
add ebx, edx
sub ebx, ecx
add bl, 0xf5
mov byte [esp + eax + 0x130], bl
add eax, 1
jmp 0x4145f7
mov ecx, dword [esp + 0x130]
xor edi, edi
cmp edi, dword [0x44aef0]
jb 0x41464d
jmp 0x4146aa
mov eax, dword [0x44aef4]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x414663
jmp 0x41469e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41469e
mov dword [esp + 0x294], ecx
mov ecx, dword [0x44aef8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0xc], eax
call fcn.0043be00
mov ecx, dword [esp + 0x294]
test bl, 1
je 0x4146a5
jmp 0x4146aa
add edi, 1
jmp 0x414643
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0x120]
mov byte [esp + 0x1c8], al
mov byte [esp + 0x124], 0xc5
mov byte [esp + 0x125], 0xda
mov byte [esp + 0x126], 0xdb
mov byte [esp + 0x127], 0xd8
mov eax, 4
mov byte [esp + eax + 0x124], 0
add eax, 1
cmp eax, 5
jne 0x4146eb
xor eax, eax
cmp eax, 5
jae 0x414740
movzx edx, byte [esp + eax + 0x124]
mov ecx, 0x30
sub ecx, eax
mov edi, esi
mov esi, 0x30
sub esi, eax
and ecx, esi
mov esi, edi
xor ecx, 0xffffffff
and ecx, edx
shl ecx, 1
mov ebx, eax
add ebx, 0xcf
add ebx, edx
sub ebx, ecx
add bl, 0xf5
mov byte [esp + eax + 0x124], bl
add eax, 1
jmp 0x4146fd
mov ecx, dword [esp + 0x124]
xor edi, edi
mov ebx, dword [esp + 0x2c]
cmp edi, dword [0x44aef0]
jb 0x414757
jmp 0x4147bc
mov eax, dword [0x44aef4]
cmp dword [eax + edi*8], 0x1b6183f2
sete bl
test bl, 1
jne 0x41476d
jmp 0x4147a8
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4147a8
mov dword [esp + 0x290], ecx
mov ecx, dword [0x44aef8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a8]
mov dword [esp + 0xc], eax
call fcn.0043be00
mov ecx, dword [esp + 0x290]
test bl, 1
je 0x4147b3
mov ebx, dword [esp + 0x2c]
jmp 0x4147bc
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x41474d
mov edi, dword [esp + 0x30]
jmp 0x4147c2
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00439550
cmp esi, 0
je 0x4147dd
mov dword [esp], esi
call fcn.00409740
jmp 0x4147dd
cmp dword [esp + 0x34], 0
sete al
test al, 1
jne 0x4147f9
jmp 0x4147eb
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00409740
jmp 0x4147f9
jmp 0x4147fb
jmp 0x4147fd
add edi, 1
jmp 0x41274c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret