Function at 0x412740
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x7f8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b80
mov ebx, eax
cmp ebx, 0
jne 0x412768
xor eax, eax
jmp 0x414625
xor edi, edi
jmp 0x41276c
mov dword [esp], ebx
call fcn.00401f50
cmp edi, eax
jb 0x41277f
mov al, 1
jmp 0x414625
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00401f60
mov dword [esp + 0x40], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x4d], 0xd5
mov byte [esp + 0x4e], 0xa1
xor eax, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x3c], edi
cmp eax, 2
jae 0x412814
movzx esi, byte [esp + eax + 0x4d]
mov edi, eax
xor edi, 0xc9e81460
mov ecx, eax
shl ecx, 1
and ecx, 0x6c2fd73e
sub ecx, edi
mov edi, esi
add edi, 1
mov edx, esi
xor edx, 0xffffffff
mov ebx, ecx
or ebx, edx
add ebx, edi
mov edx, ebx
and edx, 0xfd
mov edi, ebx
and edi, 2
xor edi, 2
imul edi, edx
mov edx, ebx
and edx, 2
or ebx, 2
imul ebx, edx
add ebx, edi
mov edi, dword [esp + 0x3c]
add ecx, esi
sub ecx, ebx
mov ebx, dword [esp + 0x2c]
mov byte [esp + eax + 0x4d], cl
add eax, 1
jmp 0x4127b1
lea eax, [esp + 0x4d]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401e50
cmp eax, 0
je 0x412909
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x5b], 0xec
mov byte [esp + 0x5c], 0x9f
mov byte [esp + 0x5d], 0xc
xor eax, eax
cmp eax, 3
jae 0x412874
mov cl, byte [esp + eax + 0x5b]
mov dl, al
add dl, 0xda
xor dl, cl
add dl, 0x30
mov byte [esp + eax + 0x5b], dl
add eax, 1
jmp 0x412858
lea eax, [esp + 0x5b]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e50
cmp eax, 0
je 0x412909
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x4b], 0xbc
mov byte [esp + 0x4c], 0xda
xor eax, eax
cmp eax, 2
jae 0x4128d7
movzx edx, byte [esp + eax + 0x4b]
mov ecx, eax
add ecx, 0x1b7dfb51
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
add cl, 0x78
mov byte [esp + eax + 0x4b], cl
add eax, 1
jmp 0x4128af
jmp 0x4128d9
lea eax, [esp + 0x4b]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e50
cmp eax, 0
setne al
and al, 0xff
or al, 0
xor al, 0xff
jmp 0x412903
test al, 1
jne 0x412909
jmp 0x41290e
jmp 0x41461d
mov al, byte [esp + 0x1ac]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x49], 0x99
mov byte [esp + 0x4a], 0x2d
xor eax, eax
cmp eax, 2
jae 0x412980
movzx ecx, byte [esp + eax + 0x49]
mov edx, eax
add edx, 0x6938ab4c
xor edx, ecx
mov ebx, edx
add ebx, 0xb63aa59f
mov esi, ebx
xor esi, 0xfe
mov ecx, ebx
or ecx, 1
and ecx, esi
mov edi, 0x49c55a60
sub edi, edx
mov edx, edi
and edx, 0xb5
and ebx, 0x4a
or edx, ebx
and edi, 1
xor edi, 1
or edx, edi
xor edx, 0xb4
add edx, ecx
mov byte [esp + eax + 0x49], dl
add eax, 1
jmp 0x412928
lea eax, [esp + 0x49]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x288], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1e0], al
mov byte [esp + 0x58], 0xa
mov byte [esp + 0x59], 0x19
mov byte [esp + 0x5a], 0xae
xor eax, eax
mov edi, dword [esp + 0x3c]
cmp eax, 3
jae 0x4129fb
movzx edx, byte [esp + eax + 0x58]
mov ecx, eax
add ecx, 0x3f1f0ccc
mov esi, 0x33
sub esi, eax
and esi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, esi
add ecx, 0x707999f
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x58], cl
add eax, 1
jmp 0x4129be
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00401990
fnstcw word [esp + 0x8c]
movzx eax, word [esp + 0x8c]
or eax, 0xc00
mov word [esp + 0x246], ax
fldcw word [esp + 0x246]
fistp dword [esp + 0x29c]
fldcw word [esp + 0x8c]
mov eax, dword [esp + 0x29c]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x47], 0xe2
mov byte [esp + 0x48], 0x38
xor eax, eax
cmp eax, 2
jae 0x412a84
mov cl, byte [esp + eax + 0x47]
mov dl, al
add dl, 0xbf
xor dl, cl
add dl, 8
mov byte [esp + eax + 0x47], dl
add eax, 1
jmp 0x412a68
lea eax, [esp + 0x47]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00401990
fnstcw word [esp + 0x8a]
movzx eax, word [esp + 0x8a]
or eax, 0xc00
mov word [esp + 0x244], ax
fldcw word [esp + 0x244]
fistp dword [esp + 0x298]
fldcw word [esp + 0x8a]
mov ebx, dword [esp + 0x298]
lea eax, [esp + 0x3f4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x288]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a6f0
lea eax, [esp + 0x3f4]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x250]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040ae30
test al, 1
jne 0x412b35
mov ebx, dword [esp + 0x2c]
jmp 0x41461b
cmp ebx, 0
sete al
mov ecx, dword [esp + 0xb8]
mov byte [esp + 0x51], al
test al, 1
jne 0x412b4f
jmp 0x413cd4
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x45], 0x80
mov byte [esp + 0x46], 0xf1
xor eax, eax
cmp eax, 2
jae 0x412bfd
movzx esi, byte [esp + eax + 0x45]
mov dword [esp + 0x25c], esi
mov ecx, eax
add ecx, 0x9388b970
mov edx, ecx
xor edx, esi
mov esi, 0x6c77468f
sub esi, eax
mov edi, 0x6c77468f
sub edi, eax
and esi, edi
mov edi, dword [esp + 0x3c]
or edx, esi
mov ebx, edx
xor ebx, 0xffffffff
mov esi, ebx
and esi, 0xfffffffd
and edx, 2
imul edx, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, edx
mov edx, ebx
xor edx, ecx
mov ecx, 0x6c77468f
sub ecx, eax
and ebx, ecx
shl ebx, 1
sub edx, ebx
add edx, dword [esp + 0x25c]
mov ecx, edx
add ecx, 0x63ba347f
mov esi, ecx
shl esi, 1
and esi, 2
or ecx, 1
or edx, 0xfe
and ecx, edx
add ecx, esi
mov byte [esp + eax + 0x45], cl
add eax, 1
jmp 0x412b69
lea eax, [esp + 0x45]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov ebx, eax
cmp ebx, 0
je 0x412e5b
mov dword [esp], ebx
call fcn.00414640
mov edi, eax
mov eax, edi
add eax, 1
jmp 0x412c2d
mov ecx, 2
mov dword [esp + 0x258], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412c4a
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x258]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.0040a6f0
xor eax, eax
lea eax, [esp + 0x19c]
mov dword [esp], 0
mov dword [esp + 0xb4], esi
mov dword [esp + 4], esi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44a4dc]
sub esp, 0x18
mov dword [esp + 0x260], eax
mov dword [esp + 0x28c], edi
mov al, byte [esp + 0x198]
mov byte [esp + 0x1ec], al
mov byte [esp + 0x6e], 0x5a
mov byte [esp + 0x6f], 0x7a
mov byte [esp + 0x70], 0x7b
mov byte [esp + 0x71], 0xbc
xor ebx, ebx
cmp ebx, 4
jae 0x412d2f
movzx eax, byte [esp + ebx + 0x6e]
mov edx, ebx
add edx, 0xf1
mov ecx, ebx
add ecx, 0xf1
and ecx, eax
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xfd
imul edi, esi
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
add ecx, edi
add edx, eax
sub edx, ecx
add dl, 0x78
mov byte [esp + ebx + 0x6e], dl
add ebx, 1
jmp 0x412ce3
mov eax, dword [esp + 0x260]
cmp eax, dword [esp + 0x6e]
sete al
mov edi, dword [esp + 0x3c]
test al, 1
mov ebx, dword [esp + 0x2c]
jne 0x412d4b
jmp 0x412d7c
jmp 0x412d4d
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00408100
jmp 0x412d5e
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x412e47
mov eax, dword [esp + 0x19c]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412d99
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov ecx, dword [0x44a4dc]
mov dword [esp + 0x254], ecx
mov ecx, dword [esp + 0x19c]
xor edx, edx
lea edx, [esp + 0x19c]
mov dword [esp], 0
mov esi, dword [esp + 0xb4]
mov dword [esp + 4], esi
mov esi, eax
mov eax, dword [esp + 0x28c]
mov dword [esp + 8], eax
mov dword [esp + 0x30], esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x254]
sub esp, 0x18
cmp eax, 0
jge 0x412e30
jmp 0x412dfe
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408100
jmp 0x412e0c
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00408100
jmp 0x412e1d
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
mov eax, 4
jmp 0x412e47
jmp 0x412e32
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
call fcn.00408100
jmp 0x412e43
xor eax, eax
jmp 0x412e47
cmp eax, 0
sete cl
test cl, 1
jne 0x41347c
jmp 0x413480
call fcn.004088a0
mov esi, eax
and esi, 0xf
xor esi, 0x10
add esi, 0
xor ebx, ebx
lea eax, [esp + 0x3b4]
jmp 0x412e76
cmp ebx, esi
jb 0x41306a
mov word [eax], 0
mov al, byte [esp + 0x190]
mov byte [esp + 0x1f4], al
mov byte [esp + 0xbe], 2
mov byte [esp + 0xbf], 0xd8
mov byte [esp + 0xc0], 0x6d
mov byte [esp + 0xc1], 0xda
mov byte [esp + 0xc2], 0x1e
mov byte [esp + 0xc3], 0xdc
mov byte [esp + 0xc4], 0x60
mov byte [esp + 0xc5], 0xde
mov byte [esp + 0xc6], 0x6f
mov byte [esp + 0xc7], 0xd0
mov byte [esp + 0xc8], 0x34
mov byte [esp + 0xc9], 0xd2
mov byte [esp + 0xca], 0x7f
mov byte [esp + 0xcb], 0xd4
mov byte [esp + 0xcc], 0xd5
mov byte [esp + 0xcd], 0xd6
xor eax, eax
cmp eax, 0x10
jae 0x412f35
mov cl, byte [esp + eax + 0xbe]
mov dl, al
add dl, 0x1f
xor dl, cl
add dl, 8
mov byte [esp + eax + 0xbe], dl
add eax, 1
jmp 0x412f13
lea eax, [esp + 0x354]
lea ecx, [esp + 0xbe]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409cd0
lea ecx, [esp + 0x3b4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409cd0
lea ecx, [esp + 0x354]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x354]
lea ecx, [esp + 0x18c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x294], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x44a4dc]
sub esp, 0x18
mov dword [esp + 0x280], eax
mov al, byte [esp + 0x188]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x66], 0x93
mov byte [esp + 0x67], 0xb1
mov byte [esp + 0x68], 0xb2
mov byte [esp + 0x69], 0x73
xor edx, edx
cmp edx, 4
jae 0x41304f
movzx eax, byte [esp + edx + 0x66]
mov ecx, edx
add ecx, 0x30
mov ebx, 0xcf
sub ebx, edx
mov esi, 0x4f
sub esi, edx
and esi, 0x54
and ecx, 0xab
or esi, ecx
xor esi, 0xab
and ebx, esi
mov ecx, edx
add ecx, 0x51f56930
mov esi, edx
add esi, 0x51f56930
and ecx, esi
or ecx, eax
xor eax, 0xffffffff
or ebx, eax
and ecx, ebx
add ecx, 0x7054b67f
mov eax, ecx
xor eax, 0xb0
shl ecx, 1
and ecx, 0x9e
sub ecx, eax
add cl, 0xb1
mov byte [esp + edx + 0x66], cl
add edx, 1
jmp 0x412fe1
mov eax, dword [esp + 0x280]
cmp eax, dword [esp + 0x66]
setne al
mov ebx, dword [esp + 0x2c]
test al, 1
jne 0x4130dc
jmp 0x4130fc
mov dword [esp + 0x278], eax
call fcn.004088a0
mov cl, byte [esp + 0x194]
mov byte [esp + 0x1f0], cl
mov byte [esp + 0x6a], 0xae
mov byte [esp + 0x6b], 0x8b
mov byte [esp + 0x6c], 0x8c
mov byte [esp + 0x6d], 0x8d
xor ecx, ecx
cmp ecx, 4
jae 0x4130b6
mov dl, byte [esp + ecx + 0x6a]
mov dh, cl
add dh, 0x5a
xor dh, dl
add dh, 0x30
mov byte [esp + ecx + 0x6a], dh
add ecx, 1
jmp 0x41309a
cdq
idiv dword [esp + 0x6a]
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x278]
mov eax, edx
add eax, 2
mov word [edx], cx
jmp 0x4130d4
add ebx, 1
jmp 0x412e76
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
jmp 0x4130ea
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x413477
mov eax, dword [esp + 0x18c]
mov cl, byte [esp + 0x184]
mov byte [esp + 0x1fc], cl
mov byte [esp + 0x62], 0x86
mov byte [esp + 0x63], 0x83
mov byte [esp + 0x64], 0x84
mov byte [esp + 0x65], 0x85
xor ecx, ecx
cmp ecx, 4
jae 0x413143
mov dl, byte [esp + ecx + 0x62]
mov dh, cl
add dh, 0x12
xor dh, dl
add dh, 0x70
mov byte [esp + ecx + 0x62], dh
add ecx, 1
jmp 0x413127
mov ecx, dword [esp + 0x62]
xor edx, edx
sub edx, ecx
sub eax, edx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413163
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov esi, dword [0x44a4dc]
mov ecx, dword [esp + 0x18c]
xor edx, edx
lea edx, [esp + 0x354]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x294]
mov dword [esp + 8], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x18c]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
cmp eax, 0
jge 0x4131dc
jmp 0x4131ba
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408100
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
mov eax, 4
jmp 0x413477
mov ecx, dword [esp + 0xb8]
cmp ecx, 0
jne 0x41330e
mov al, byte [esp + 0x180]
mov byte [esp + 0x200], al
mov byte [esp + 0xaa], 0x19
mov byte [esp + 0xab], 0xb8
mov byte [esp + 0xac], 0x1c
mov byte [esp + 0xad], 0xba
mov byte [esp + 0xae], 0x33
mov byte [esp + 0xaf], 0xbc
mov byte [esp + 0xb0], 0x18
mov byte [esp + 0xb1], 0xbe
mov byte [esp + 0xb2], 0xbf
mov byte [esp + 0xb3], 0xb0
xor eax, eax
cmp eax, 0xa
jae 0x4132ea
movzx edx, byte [esp + eax + 0xaa]
mov ebx, eax
and ebx, 0xb10bc63d
mov esi, eax
and esi, 0xb10bc63d
mov ecx, eax
and ecx, 2
xor ecx, 2
imul ecx, esi
mov esi, eax
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, ecx
mov ecx, eax
xor ecx, 0xb10bc63f
add ecx, ebx
mov ebx, ecx
and ebx, edx
mov esi, ebx
and esi, 0xfd
mov edi, ebx
and edi, 2
xor edi, 2
imul edi, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, edi
add ecx, edx
mov edx, ecx
xor edx, ebx
xor ebx, 0xffffffff
and ecx, ebx
shl ecx, 1
sub ecx, edx
add ecx, 0x77a1ce07
mov edx, ecx
and edx, 1
or ecx, 1
add ecx, 0x89
or ecx, edx
add cl, 0x77
mov byte [esp + eax + 0xaa], cl
add eax, 1
jmp 0x41324c
lea eax, [esp + 0xaa]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004149e0
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x3c]
jmp 0x413473
cmp ecx, 1
sete al
test al, 1
jne 0x41331d
jmp 0x4133d1
mov al, byte [esp + 0x17c]
mov byte [esp + 0x204], al
mov byte [esp + 0xa0], 0xc3
mov byte [esp + 0xa1], 0xbe
mov byte [esp + 0xa2], 0x1b
mov byte [esp + 0xa3], 0xb0
mov byte [esp + 0xa4], 0xd
mov byte [esp + 0xa5], 0xb2
mov byte [esp + 0xa6], 0xf
mov byte [esp + 0xa7], 0xb4
mov byte [esp + 0xa8], 0xb5
mov byte [esp + 0xa9], 0xb6
xor eax, eax
cmp eax, 0xa
jae 0x4133b5
mov dl, byte [esp + eax + 0xa0]
mov esi, eax
add esi, 0x15
mov ecx, 0xea
sub ecx, eax
and ecx, 0x82
and esi, 0x7d
or ecx, esi
xor cl, dl
xor cl, 0x7d
mov dl, 0x57
sub dl, cl
mov byte [esp + eax + 0xa0], dl
add eax, 1
jmp 0x41337d
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004149e0
jmp 0x413473
cmp ecx, 2
jne 0x413473
mov al, byte [esp + 0x178]
mov byte [esp + 0x208], al
mov byte [esp + 0x96], 0xcc
mov byte [esp + 0x97], 0xe3
mov byte [esp + 0x98], 0x74
mov byte [esp + 0x99], 0xe5
mov byte [esp + 0x9a], 0x75
mov byte [esp + 0x9b], 0xe7
mov byte [esp + 0x9c], 0xb9
mov byte [esp + 0x9d], 0xe9
mov byte [esp + 0x9e], 0xea
mov byte [esp + 0x9f], 0xeb
xor eax, eax
cmp eax, 0xa
jae 0x41345c
mov cl, byte [esp + eax + 0x96]
mov dl, al
add dl, 0x72
xor dl, cl
add dl, 0x70
mov byte [esp + eax + 0x96], dl
add eax, 1
jmp 0x41343a
lea eax, [esp + 0x96]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004149e0
xor eax, eax
jmp 0x413477
cmp eax, 0
jne 0x413480
xor eax, eax
jmp 0x413480
cmp eax, 0
jne 0x41461b
lea eax, [esp + 0x24c]
xor ecx, ecx
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
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.0043e680
mov esi, eax
cmp eax, 0
setge al
test al, 1
jne 0x4134db
jmp 0x4135ee
mov eax, dword [esp + 0x250]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24c]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043edb0
mov esi, eax
mov eax, dword [esp + 0x24c]
mov dword [esp + 0x284], eax
mov al, byte [esp + 0x1cc]
mov byte [esp + 0x230], al
mov byte [esp + 0x82], 0x1f
mov byte [esp + 0x83], 0x1e
mov byte [esp + 0x84], 0x1d
mov byte [esp + 0x85], 0x1c
xor eax, eax
cmp eax, 4
jae 0x413566
mov cl, byte [esp + eax + 0x82]
mov dl, al
add dl, 0xe0
xor dl, cl
mov byte [esp + eax + 0x82], dl
add eax, 1
jmp 0x413547
mov ecx, dword [esp + 0x82]
xor edx, edx
cmp edx, dword [0x44a4e0]
jb 0x413579
jmp 0x4135ee
mov eax, dword [0x44a4e4]
cmp dword [eax + edx*8], 0xb430e561
sete bl
test bl, 1
jne 0x41358f
jmp 0x4135da
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
jne 0x413599
jmp 0x4135da
mov dword [esp + 0x274], ecx
mov ecx, dword [0x44a4e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x284]
mov dword [esp + 0xc], eax
mov dword [esp + 0x264], edx
call fcn.0043c7c0
mov edx, dword [esp + 0x264]
mov ecx, dword [esp + 0x274]
test bl, 1
je 0x4135e5
mov ebx, dword [esp + 0x2c]
jmp 0x4135ee
add edx, 1
mov ebx, dword [esp + 0x2c]
jmp 0x41356f
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
mov dword [esp + 0x34], 0
cmp esi, 0
setge al
test al, 1
mov ecx, dword [esp + 0xb8]
jne 0x413627
jmp 0x413615
mov dword [esp + 0x38], 0
mov eax, 4
jmp 0x413cc6
cmp ecx, 1
jne 0x4139aa
mov al, byte [esp + 0x174]
mov byte [esp + 0x20c], al
mov byte [esp + 0x55], 0x41
mov byte [esp + 0x56], 0x46
mov byte [esp + 0x57], 0xd9
xor eax, eax
cmp eax, 3
jae 0x4136b1
movzx edx, byte [esp + eax + 0x55]
mov ecx, eax
add ecx, 0x1f
and ecx, edx
mov esi, ecx
and esi, 0xfd
mov edi, ecx
and edi, 2
xor edi, 2
imul edi, esi
mov esi, ecx
and esi, 2
or ecx, 2
imul ecx, esi
add ecx, edi
mov ebx, eax
add ebx, 0x46877b1f
add ebx, edx
add ebx, 0x310b32fc
sub ebx, ecx
add ebx, 0x9ab8f40b
mov ecx, ebx
shl ecx, 1
and ecx, 2
xor ebx, 1
add ebx, ecx
mov byte [esp + eax + 0x55], bl
mov ebx, dword [esp + 0x2c]
add eax, 1
jmp 0x41364f
lea eax, [esp + 0x55]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x154], eax
mov al, byte [esp + 0x170]
mov byte [esp + 0x210], al
mov byte [esp + 0x52], 0x18
mov byte [esp + 0x53], 8
mov byte [esp + 0x54], 0x7b
xor eax, eax
mov esi, dword [esp + 0x30]
cmp eax, 3
jae 0x41370b
mov cl, byte [esp + eax + 0x52]
mov dl, al
add dl, 0xf1
xor dl, cl
add dl, 0x78
mov byte [esp + eax + 0x52], dl
add eax, 1
jmp 0x4136ef
lea eax, [esp + 0x52]
mov ecx, dword [esp + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x150], eax
mov dword [esp], esi
call fcn.00414a30
mov edi, eax
cmp dword [esp + 0x154], 0
setne al
mov dword [esp + 0x14c], 0
mov byte [esp + 0x4f], al
test al, 1
jne 0x413750
jmp 0x413770
mov eax, dword [esp + 0x154]
mov dword [esp], eax
call fcn.00408200
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov dword [esp + 0x14c], eax
cmp dword [esp + 0x150], 0
setne al
xor edx, edx
mov byte [esp + 0x50], al
test al, 1
jne 0x413787
jmp 0x4137ab
mov eax, dword [esp + 0x150]
mov dword [esp], eax
call fcn.00408200
mov edx, eax
add edx, 0x9fd07632
add edx, 1
sub edx, 0x9fd07632
jmp 0x4137a9
jmp 0x4137ab
add edi, 9
xor ecx, ecx
sub ecx, edi
xor eax, eax
sub eax, dword [esp + 0x14c]
add ecx, eax
xor eax, eax
sub eax, ecx
mov dword [esp + 0x248], edx
add eax, edx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4137e3
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x16c]
mov byte [esp + 0x214], al
mov byte [esp + 0xce], 0x77
mov byte [esp + 0xcf], 0xc6
mov byte [esp + 0xd0], 0x72
mov byte [esp + 0xd1], 0xd8
mov byte [esp + 0xd2], 0x67
mov byte [esp + 0xd3], 0xda
mov byte [esp + 0xd4], 0x7f
mov byte [esp + 0xd5], 0xdc
mov byte [esp + 0xd6], 0x61
mov byte [esp + 0xd7], 0xde
mov byte [esp + 0xd8], 0x63
mov byte [esp + 0xd9], 0xd0
mov byte [esp + 0xda], 0x22
mov byte [esp + 0xdb], 0xd2
mov byte [esp + 0xdc], 0x21
mov byte [esp + 0xdd], 0xd4
mov byte [esp + 0xde], 0xd5
mov byte [esp + 0xdf], 0xd6
xor eax, eax
cmp eax, 0x12
jae 0x4138c3
mov cl, byte [esp + eax + 0xce]
mov dl, al
add dl, 0xad
xor dl, cl
add dl, 0x98
mov byte [esp + eax + 0xce], dl
mov ecx, eax
and ecx, 0x1a
xor ecx, 0xa7af33da
and eax, 5
sub eax, ecx
add eax, 0xa7af33db
jmp 0x41388f
lea eax, [esp + 0xce]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409cd0
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.00409cd0
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp esi, 0
je 0x413910
mov dword [esp], esi
call fcn.00408100
test byte [esp + 0x4f], 1
jne 0x413920
mov edx, dword [esp + 0x248]
jmp 0x413963
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x14c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a6f0
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x2c]
mov edx, dword [esp + 0x248]
test byte [esp + 0x50], 1
jne 0x41396c
jmp 0x413997
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esp + 0x150]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a6f0
mov dword [esp + 0x30], 0
xor ecx, ecx
mov edi, dword [esp + 0x3c]
jmp 0x413cc2
mov dword [esp + 0x38], 0
cmp ecx, 2
je 0x4139bc
jmp 0x413cc2
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00414a30
add eax, 0xe03da45
sub eax, 0xe03da28
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4139eb
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x168]
mov byte [esp + 0x218], al
mov byte [esp + 0x5e], 0x8f
mov byte [esp + 0x5f], 0xee
mov byte [esp + 0x60], 0xef
mov byte [esp + 0x61], 0xe0
xor eax, eax
cmp eax, 4
jae 0x413a5a
movzx edx, byte [esp + eax + 0x5e]
mov esi, eax
shl esi, 1
and esi, 0xd329698a
mov ecx, eax
xor ecx, 0x6994b4c5
add ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
mov edx, ecx
xor edx, esi
xor esi, 0xffffffff
and ecx, esi
shl ecx, 1
sub ecx, edx
add cl, 0xd8
mov byte [esp + eax + 0x5e], cl
add eax, 1
jmp 0x413a1b
mov al, byte [esp + 0x164]
mov byte [esp + 0x21c], al
mov byte [esp + 0x112], 0x36
mov byte [esp + 0x113], 0xa7
mov byte [esp + 0x114], 7
mov byte [esp + 0x115], 0xa9
mov byte [esp + 0x116], 0x3d
mov byte [esp + 0x117], 0xab
mov byte [esp + 0x118], 9
mov byte [esp + 0x119], 0xad
mov byte [esp + 0x11a], 0x3c
mov byte [esp + 0x11b], 0xaf
mov byte [esp + 0x11c], 3
mov byte [esp + 0x11d], 0x91
mov byte [esp + 0x11e], 0x3a
mov byte [esp + 0x11f], 0x93
mov byte [esp + 0x120], 0x31
mov byte [esp + 0x121], 0x95
mov byte [esp + 0x122], 0x3a
mov byte [esp + 0x123], 0x97
mov byte [esp + 0x124], 0x34
mov byte [esp + 0x125], 0x99
mov byte [esp + 0x126], 0xfa
mov byte [esp + 0x127], 0x9b
mov byte [esp + 0x128], 0xf1
mov byte [esp + 0x129], 0x9d
mov byte [esp + 0x12a], 0x3b
mov byte [esp + 0x12b], 0x9f
mov byte [esp + 0x12c], 0x18
mov byte [esp + 0x12d], 0x81
mov byte [esp + 0x12e], 0x27
mov byte [esp + 0x12f], 0x83
mov byte [esp + 0x130], 0x27
mov byte [esp + 0x131], 0x85
mov byte [esp + 0x132], 0xe6
mov byte [esp + 0x133], 0x87
mov byte [esp + 0x134], 0x2a
mov byte [esp + 0x135], 0x89
mov byte [esp + 0x136], 0x13
mov byte [esp + 0x137], 0x8b
mov byte [esp + 0x138], 0x1c
mov byte [esp + 0x139], 0x8d
mov byte [esp + 0x13a], 0x2f
mov byte [esp + 0x13b], 0x8f
mov byte [esp + 0x13c], 0x63
mov byte [esp + 0x13d], 0xf1
mov byte [esp + 0x13e], 0x61
mov byte [esp + 0x13f], 0xf3
mov byte [esp + 0x140], 0x94
mov byte [esp + 0x141], 0xf5
mov byte [esp + 0x142], 0x9b
mov byte [esp + 0x143], 0xf7
mov byte [esp + 0x144], 0x5e
mov byte [esp + 0x145], 0xf9
mov byte [esp + 0x146], 0x9a
mov byte [esp + 0x147], 0xfb
mov byte [esp + 0x148], 0x9e
mov byte [esp + 0x149], 0xfd
mov byte [esp + 0x14a], 0xfe
mov byte [esp + 0x14b], 0xff
xor eax, eax
cmp eax, 0x3a
jae 0x413c80
movzx ecx, byte [esp + eax + 0x112]
mov esi, eax
shl esi, 1
and esi, 0xcc9a942c
mov edx, eax
xor edx, 0xe64d4a16
add edx, esi
mov esi, ecx
xor esi, 0xffffffff
mov ebx, edx
and ebx, esi
mov esi, edx
shl esi, 1
xor esi, 0xffffffff
add edx, esi
and edx, ecx
or ebx, edx
add bl, 0x50
mov byte [esp + eax + 0x112], bl
add eax, 1
jmp 0x413c3a
lea eax, [esp + 0x112]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409cd0
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
call fcn.00409cd0
lea ecx, [esp + 0x5e]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409cd0
mov ebx, dword [esp + 0x2c]
mov ecx, 2
jmp 0x413cc2
xor eax, eax
jmp 0x413cc6
cmp eax, 0
je 0x413fb0
jmp 0x41461b
xor ebx, 1
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
test al, 1
jne 0x413cfe
mov dword [esp + 0x38], 0
mov dword [esp + 0x30], 0
mov ebx, dword [esp + 0x2c]
jmp 0x413fb0
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00414640
mov edi, eax
and edi, 1
or eax, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
mov ebx, dword [esp + 0x2c]
jne 0x413d30
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov edx, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp + 0x290], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a6f0
mov ecx, dword [esp + 0x250]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
mov eax, 0x18
sub eax, ecx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413d8a
mov ecx, eax
mov dword [esp], ecx
call fcn.004080f0
mov esi, eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x220], al
mov byte [esp + 0xe0], 0xb7
mov byte [esp + 0xe1], 0x18
mov byte [esp + 0xe2], 0x86
mov byte [esp + 0xe3], 0x1a
mov byte [esp + 0xe4], 0x8c
mov byte [esp + 0xe5], 0x1c
mov byte [esp + 0xe6], 0xb8
mov byte [esp + 0xe7], 0x1e
mov byte [esp + 0xe8], 0x8d
mov byte [esp + 0xe9], 0x10
mov byte [esp + 0xea], 0x82
mov byte [esp + 0xeb], 0x12
mov byte [esp + 0xec], 0x8b
mov byte [esp + 0xed], 0x14
mov byte [esp + 0xee], 0xb0
mov byte [esp + 0xef], 0x16
mov byte [esp + 0xf0], 0x8b
mov byte [esp + 0xf1], 8
mov byte [esp + 0xf2], 0x95
mov byte [esp + 0xf3], 0xa
mov byte [esp + 0xf4], 0xeb
mov byte [esp + 0xf5], 0xc
mov byte [esp + 0xf6], 0xd0
mov byte [esp + 0xf7], 0xe
mov byte [esp + 0xf8], 0xaa
mov byte [esp + 0xf9], 0
mov byte [esp + 0xfa], 0x89
mov byte [esp + 0xfb], 2
mov byte [esp + 0xfc], 0xa6
mov byte [esp + 0xfd], 4
mov byte [esp + 0xfe], 0xa6
mov byte [esp + 0xff], 6
mov byte [esp + 0x100], 0xe7
mov byte [esp + 0x101], 0xf8
mov byte [esp + 0x102], 0x5b
mov byte [esp + 0x103], 0xfa
mov byte [esp + 0x104], 0x72
mov byte [esp + 0x105], 0xfc
mov byte [esp + 0x106], 0x6d
mov byte [esp + 0x107], 0xfe
mov byte [esp + 0x108], 0x5e
mov byte [esp + 0x109], 0xf0
mov byte [esp + 0x10a], 0x62
mov byte [esp + 0x10b], 0xf2
mov byte [esp + 0x10c], 0x60
mov byte [esp + 0x10d], 0xf4
mov byte [esp + 0x10e], 0x15
mov byte [esp + 0x10f], 0xf6
mov byte [esp + 0x110], 0xf7
mov byte [esp + 0x111], 0xe8
xor eax, eax
mov edi, dword [esp + 0x3c]
cmp eax, 0x32
jae 0x413f6d
movzx edx, byte [esp + eax + 0xe0]
mov ecx, eax
add ecx, 0x538a62df
xor ecx, edx
add ecx, 0x63ace907
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0xe0], cl
add eax, 1
jmp 0x413f38
lea eax, [esp + 0xe0]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.00409cd0
mov dword [esp], eax
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x290]
mov dword [esp + 4], esi
call fcn.00409cd0
mov dword [esp], esi
call fcn.00408100
mov dword [esp + 0x30], 0
mov ecx, dword [esp + 0xb8]
jmp 0x413fb0
mov al, byte [esp + 0x51]
test ecx, ecx
je 0x413fd5
jmp 0x413fba
mov eax, ecx
sub eax, 1
je 0x414147
jmp 0x413fc7
sub ecx, 2
je 0x4143d3
jmp 0x4145e5
test al, 1
jne 0x413fde
jmp 0x414147
lea edi, [esp + 0x310]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x310], 0x44
call fcn.00414a50
call fcn.00414a50
mov eax, dword [0x4494d4]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043e140
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x310]
lea edx, [esp + 0x2bc]
mov esi, dword [esp + 0x30]
mov dword [esp], esi
mov edi, dword [esp + 0x38]
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 0x41413e
mov esi, dword [esp + 0x2bc]
mov al, byte [esp + 0x1c8]
mov byte [esp + 0x234], al
mov byte [esp + 0x7e], 0x1f
mov byte [esp + 0x7f], 0x1e
mov byte [esp + 0x80], 0x1d
mov byte [esp + 0x81], 0x1c
xor eax, eax
cmp eax, 4
jae 0x4140cc
mov cl, byte [esp + eax + 0x7e]
mov dl, al
add dl, 0xe0
xor dl, cl
mov byte [esp + eax + 0x7e], dl
add eax, 1
jmp 0x4140b3
mov ecx, dword [esp + 0x7e]
xor edi, edi
cmp edi, dword [0x44a4e0]
jb 0x4140dc
jmp 0x41413c
mov eax, dword [0x44a4e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x4140f2
jmp 0x414128
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x4140fc
jmp 0x414128
mov dword [esp + 0x268], ecx
mov ecx, dword [0x44a4e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043c7c0
mov ecx, dword [esp + 0x268]
test bl, 1
je 0x414133
mov ebx, dword [esp + 0x2c]
jmp 0x41413c
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x4140d2
jmp 0x41413e
mov edi, dword [esp + 0x3c]
jmp 0x4145e5
mov eax, dword [0x4494d4]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043e140
test eax, eax
setne cl
mov ecx, dword [esp + 0x34]
xor edx, edx
lea edx, [0x423350]
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 0x4143ce
mov cl, byte [esp + 0x15c]
mov byte [esp + 0x224], cl
mov byte [esp + 0x8e], 0x2b
mov byte [esp + 0x8f], 0xe6
mov byte [esp + 0x90], 0x61
mov byte [esp + 0x91], 0xc2
mov byte [esp + 0x92], 0x20
mov byte [esp + 0x93], 0x2f
mov byte [esp + 0x94], 0x2e
mov byte [esp + 0x95], 0x2d
xor ecx, ecx
cmp ecx, 8
jae 0x414214
mov dl, byte [esp + ecx + 0x8e]
mov dh, cl
add dh, 0xb3
xor dh, dl
add dh, 0x68
mov byte [esp + ecx + 0x8e], dh
add ecx, 1
jmp 0x4141f2
mov ecx, dword [esp + 0x8e]
mov edx, dword [esp + 0x92]
mov dword [esp + 0x2a4], edx
mov dword [esp + 0x2a0], ecx
mov cl, byte [esp + 0x228]
mov byte [esp + 0x22c], cl
mov byte [esp + 0x86], 0x1f
mov byte [esp + 0x87], 0x1e
mov byte [esp + 0x88], 0x1d
mov byte [esp + 0x89], 0x1c
xor ecx, ecx
cmp ecx, 4
jae 0x41427f
mov dl, byte [esp + ecx + 0x86]
mov dh, cl
add dh, 0xe0
xor dh, dl
mov byte [esp + ecx + 0x86], dh
add ecx, 1
jmp 0x414260
mov edx, dword [esp + 0x86]
xor edi, edi
cmp edi, dword [0x44a4e0]
jb 0x414295
jmp 0x41431a
mov ecx, dword [0x44a4e4]
cmp dword [ecx + edi*8], 0xa67d73aa
sete bl
test bl, 1
jne 0x4142ac
jmp 0x414303
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, edx
je 0x414303
mov dword [esp + 0x27c], edx
mov edx, dword [0x44a4e8]
xor esi, esi
lea esi, [esp + 0x2a0]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov dword [esp + 0x158], eax
call fcn.0043c7c0
mov edx, dword [esp + 0x27c]
mov eax, dword [esp + 0x158]
test bl, 1
jne 0x414314
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x414288
mov ebx, dword [esp + 0x2c]
jmp 0x41431a
mov cl, byte [esp + 0x1c4]
mov byte [esp + 0x238], cl
mov byte [esp + 0x7a], 0x1f
mov byte [esp + 0x7b], 0x1e
mov byte [esp + 0x7c], 0x1d
mov byte [esp + 0x7d], 0x1c
xor ecx, ecx
cmp ecx, 4
jae 0x414357
mov dl, byte [esp + ecx + 0x7a]
mov dh, cl
add dh, 0xe0
xor dh, dl
mov byte [esp + ecx + 0x7a], dh
add ecx, 1
jmp 0x41433e
mov esi, dword [esp + 0x7a]
xor edi, edi
cmp edi, dword [0x44a4e0]
jb 0x414367
jmp 0x4143c8
mov ecx, dword [0x44a4e4]
cmp dword [ecx + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x41437e
jmp 0x4143b4
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, esi
jne 0x414388
jmp 0x4143b4
mov edx, dword [0x44a4e8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x158], eax
call fcn.0043c7c0
mov eax, dword [esp + 0x158]
test bl, 1
je 0x4143bf
mov ebx, dword [esp + 0x2c]
jmp 0x4143c8
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x41435d
mov edi, dword [esp + 0x3c]
jmp 0x4143ce
jmp 0x4145e5
lea edi, [esp + 0x2cc]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2cc], 0x44
call fcn.00414a50
call fcn.00414a50
mov eax, dword [0x4494d4]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043e140
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2cc]
lea edx, [esp + 0x2ac]
mov dword [esp], 0
mov edi, dword [esp + 0x38]
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
je 0x4145df
mov esi, dword [esp + 0x2b0]
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x23c], al
mov byte [esp + 0x76], 0x1f
mov byte [esp + 0x77], 0x1e
mov byte [esp + 0x78], 0x1d
mov byte [esp + 0x79], 0x1c
xor eax, eax
cmp eax, 4
jae 0x4144bb
mov cl, byte [esp + eax + 0x76]
mov dl, al
add dl, 0xe0
xor dl, cl
mov byte [esp + eax + 0x76], dl
add eax, 1
jmp 0x4144a2
mov ecx, dword [esp + 0x76]
xor edi, edi
cmp edi, dword [0x44a4e0]
jb 0x4144cb
jmp 0x41452b
mov eax, dword [0x44a4e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x4144e1
jmp 0x414517
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x4144eb
jmp 0x414517
mov dword [esp + 0x270], ecx
mov ecx, dword [0x44a4e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043c7c0
mov ecx, dword [esp + 0x270]
test bl, 1
je 0x414522
mov ebx, dword [esp + 0x2c]
jmp 0x41452b
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x4144c1
mov esi, dword [esp + 0x2ac]
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x240], al
mov byte [esp + 0x72], 0x1f
mov byte [esp + 0x73], 0x1e
mov byte [esp + 0x74], 0x1d
mov byte [esp + 0x75], 0x1c
xor eax, eax
cmp eax, 4
jae 0x41456f
mov cl, byte [esp + eax + 0x72]
mov dl, al
add dl, 0xe0
xor dl, cl
mov byte [esp + eax + 0x72], dl
add eax, 1
jmp 0x414556
mov ecx, dword [esp + 0x72]
xor edi, edi
cmp edi, dword [0x44a4e0]
jb 0x41457f
jmp 0x4145df
mov eax, dword [0x44a4e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x414595
jmp 0x4145cb
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
jne 0x41459f
jmp 0x4145cb
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x44a4e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], esi
call fcn.0043c7c0
mov ecx, dword [esp + 0x26c]
test bl, 1
je 0x4145d6
mov ebx, dword [esp + 0x2c]
jmp 0x4145df
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x414575
mov edi, dword [esp + 0x3c]
jmp 0x4145e5
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.0043af70
cmp dword [esp + 0x30], 0
je 0x414606
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408100
jmp 0x414606
mov eax, dword [esp + 0x38]
cmp eax, 0
je 0x414619
mov dword [esp], eax
call fcn.00408100
jmp 0x414619
jmp 0x41461b
jmp 0x41461d
add edi, 1
jmp 0x41276c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret