Function at 0x410dc0
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, 0x838
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004019b0
mov esi, eax
cmp esi, 0
jne 0x410de8
xor eax, eax
jmp 0x412e5c
xor edi, edi
jmp 0x410dec
mov dword [esp], esi
call fcn.00401b80
cmp edi, eax
jb 0x410dff
mov al, 1
jmp 0x412e5c
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00401b90
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0xc4]
mov byte [esp + 0x104], al
mov byte [esp + 0x28c], 0xbb
mov byte [esp + 0x28d], 0x4f
mov eax, 2
mov byte [esp + eax + 0x28c], 0
add eax, 1
cmp eax, 6
jne 0x410e32
xor eax, eax
cmp eax, 6
jae 0x410e96
movzx edx, byte [esp + eax + 0x28c]
mov ebx, eax
add ebx, 0x57ba6c8d
mov ecx, 0xa8459372
sub ecx, eax
and ecx, 0xb2b93def
xor ebx, 0xb2b93def
xor edx, 0xb2b93def
or ecx, ebx
mov ebx, ecx
and ebx, edx
shl ebx, 1
add ecx, edx
sub ecx, ebx
add cl, 0x3f
mov byte [esp + eax + 0x28c], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x410e44
lea eax, [esp + 0x28c]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
je 0x411023
mov al, byte [esp + 0xc0]
mov byte [esp + 0x108], 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, 6
jne 0x410ee9
xor eax, eax
cmp eax, 6
jae 0x410f4a
movzx ecx, byte [esp + eax + 0x248]
mov edx, eax
add edx, 0xcc1aefcc
mov ebx, edx
and ebx, ecx
shl ebx, 1
sub edx, ebx
add edx, ecx
mov ecx, edx
add ecx, 0x5b34eacf
mov ebx, 0x30
sub ebx, edx
and ebx, 0xcc
mov edx, ecx
and edx, 0x32
sub edx, ebx
and ecx, 1
or edx, 1
add edx, ecx
mov byte [esp + eax + 0x248], dl
add eax, 1
jmp 0x410efb
lea eax, [esp + 0x248]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b20
jmp 0x410f6b
cmp eax, 0
setne al
test al, 1
jne 0x410f7a
jmp 0x411023
mov al, byte [esp + 0xbc]
mov byte [esp + 0x10c], al
mov byte [esp + 0x284], 0xeb
mov byte [esp + 0x285], 0x47
mov eax, 2
mov byte [esp + eax + 0x284], 0
add eax, 1
cmp eax, 5
jne 0x410f9d
mov dword [esp + 0x30], edi
xor eax, eax
jmp 0x410fb5
cmp eax, 5
jae 0x410ff2
movzx ebx, byte [esp + eax + 0x284]
mov ecx, eax
add ecx, 0x71
mov edx, ebx
xor edx, 0xffffffff
and ecx, edx
mov edx, 0x8e
sub edx, eax
mov edi, ebx
add edi, 1
xor ebx, 0xffffffff
or edx, ebx
add edx, edi
or edx, ecx
add dl, 0xcb
mov byte [esp + eax + 0x284], dl
add eax, 1
jmp 0x410fb5
lea eax, [esp + 0x284]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b20
cmp eax, 0
setne al
mov edi, dword [esp + 0x30]
xor al, 1
test al, 1
jne 0x411023
jmp 0x411028
jmp 0x412e54
mov al, byte [esp + 0xb8]
mov byte [esp + 0x110], al
mov byte [esp + 0x27c], 0xb
mov byte [esp + 0x27d], 0x9f
mov eax, 2
mov byte [esp + eax + 0x27c], 0
add eax, 1
cmp eax, 8
jne 0x41104b
xor eax, eax
cmp eax, 8
jae 0x4110ea
movzx ecx, byte [esp + eax + 0x27c]
mov edi, eax
xor edi, 0x2719545a
mov edx, eax
or edx, 0xd8e6aba5
and edx, edi
mov ebx, edx
and ebx, 2
xor ebx, 2
mov edi, edx
and edi, 0xfffffffd
imul ebx, edi
mov edi, edx
and edi, 2
or edx, 2
imul edx, edi
add ebx, edx
mov edi, eax
shl edi, 1
and edi, 0xb1cd574a
mov edx, eax
add edx, 0xd8e6aba5
sub edx, edi
add edx, ebx
mov edi, edx
and edi, ecx
shl edi, 1
sub edx, edi
add edx, ecx
mov ecx, edx
shl ecx, 1
and ecx, 2
mov edi, 1
sub edi, edx
and edi, 1
and edx, 0xfe
or edx, edi
add edx, ecx
add dl, 0xc6
mov byte [esp + eax + 0x27c], dl
add eax, 1
jmp 0x41105d
lea eax, [esp + 0x27c]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x2d0], eax
mov al, byte [esp + 0xb4]
mov byte [esp + 0x114], al
mov byte [esp + 0x240], 0x46
mov byte [esp + 0x241], 0xb5
mov byte [esp + 0x242], 0x22
mov eax, 3
mov byte [esp + eax + 0x240], 0
add eax, 1
cmp eax, 6
jne 0x411133
xor eax, eax
cmp eax, 6
jae 0x411175
mov dl, byte [esp + eax + 0x240]
movzx edi, dl
mov ecx, eax
add ecx, 0xbd2f2338
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 0xe8
mov byte [esp + eax + 0x240], cl
add eax, 1
jmp 0x411145
lea eax, [esp + 0x240]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x52]
movzx eax, word [esp + 0x52]
or eax, 0xc00
mov word [esp + 0x16e], ax
fldcw word [esp + 0x16e]
fistp dword [esp + 0x2dc]
fldcw word [esp + 0x52]
mov ecx, dword [esp + 0x2dc]
mov al, byte [esp + 0xb0]
mov byte [esp + 0x118], al
mov byte [esp + 0x274], 0xbb
mov byte [esp + 0x275], 0x27
mov eax, 2
mov byte [esp + eax + 0x274], 0
add eax, 1
cmp eax, 6
jne 0x4111de
mov dword [esp + 0x4c], ecx
xor eax, eax
cmp eax, 6
jae 0x411238
movzx edx, byte [esp + eax + 0x274]
mov edi, eax
add edi, 0x79
and edi, edx
mov ecx, 0xd9705f86
sub ecx, eax
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
mov edi, 0xa1
sub edi, ecx
mov edx, 1
sub edx, ecx
and edx, 1
or edi, 1
add edx, edi
mov byte [esp + eax + 0x274], dl
add eax, 1
jmp 0x4111f4
lea eax, [esp + 0x274]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x50]
movzx eax, word [esp + 0x50]
or eax, 0xc00
mov word [esp + 0x16c], ax
fldcw word [esp + 0x16c]
fistp dword [esp + 0x2d8]
fldcw word [esp + 0x50]
mov ebx, dword [esp + 0x2d8]
lea eax, [esp + 0x434]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2d0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a950
lea eax, [esp + 0x434]
lea ecx, [esp + 0x40]
lea edx, [esp + 0x270]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.0040b0d0
test al, 1
mov edi, dword [esp + 0x30]
jne 0x4112d9
jmp 0x412e52
cmp ebx, 0
sete al
mov ecx, dword [esp + 0x4c]
mov byte [esp + 0x37], al
test al, 1
jne 0x4112f0
jmp 0x412311
mov al, byte [esp + 0xac]
mov byte [esp + 0x11c], al
mov byte [esp + 0x268], 0xf4
mov byte [esp + 0x269], 0x67
mov eax, 2
mov byte [esp + eax + 0x268], 0
add eax, 1
cmp eax, 8
jne 0x411313
xor eax, eax
cmp eax, 8
jae 0x411377
movzx edx, byte [esp + eax + 0x268]
mov ecx, eax
xor ecx, 0x4892ab66
mov edi, eax
or edi, 0xb76d5499
and edi, ecx
mov ecx, eax
or ecx, 0xb76d5499
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edi, dword [esp + 0x30]
mov edx, ecx
shl edx, 1
and edx, 4
xor ecx, 2
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x268], cl
add eax, 1
jmp 0x411325
lea eax, [esp + 0x268]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
cmp eax, 0
je 0x4114c2
mov dword [esp + 0x2a0], eax
mov dword [esp], eax
call fcn.00412e70
mov dword [esp + 0x258], eax
sub eax, 0xffffffff
mov ecx, 2
mov dword [esp + 0x298], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4113cd
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov ebx, eax
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x298]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2a0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a950
xor eax, eax
lea eax, [esp + 0xa8]
mov dword [esp], 0
mov dword [esp + 0x254], ebx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x258]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x448398]
sub esp, 0x18
mov eax, dword [esp + 0xa8]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41145f
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov ebx, eax
mov eax, dword [0x448398]
mov ecx, dword [esp + 0xa8]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x254]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x258]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
mov eax, dword [esp + 0x254]
mov dword [esp], eax
call fcn.00408170
jmp 0x4114bd
jmp 0x4119e1
call fcn.00408890
mov edi, eax
and edi, 0xf
add edi, 0x10
jmp 0x4114d1
xor ecx, ecx
lea ebx, [esp + 0x3f4]
jmp 0x4114dc
cmp ecx, edi
jb 0x4116b9
mov word [ebx], 0
mov al, byte [esp + 0x90]
mov byte [esp + 0x120], al
mov byte [esp + 0x94], 0xfd
mov byte [esp + 0x95], 0x91
mov byte [esp + 0x96], 0x2e
mov byte [esp + 0x97], 0x93
mov byte [esp + 0x98], 0xd1
mov byte [esp + 0x99], 0x9d
mov byte [esp + 0x9a], 0x2b
mov byte [esp + 0x9b], 0x9f
mov byte [esp + 0x9c], 0x28
mov byte [esp + 0x9d], 0x99
mov byte [esp + 0x9e], 0xf7
mov byte [esp + 0x9f], 0x9b
mov byte [esp + 0xa0], 0x20
mov byte [esp + 0xa1], 0x85
mov byte [esp + 0xa2], 0x86
mov byte [esp + 0xa3], 0x87
mov eax, 0x10
mov byte [esp + eax + 0x94], 0
add eax, 1
cmp eax, 0x11
jne 0x41157c
xor eax, eax
cmp eax, 0x11
jae 0x4115c3
movzx edx, byte [esp + eax + 0x94]
mov ecx, eax
add ecx, 0xfa3ec424
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x96
xor ecx, 0x4b
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x94], cl
add eax, 1
jmp 0x41158e
lea eax, [esp + 0x394]
lea ecx, [esp + 0x94]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409db0
lea ecx, [esp + 0x3f4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409db0
lea edx, [esp + 0x394]
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 + 0x394]
lea ecx, [esp + 0x8c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edi, eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x448398]
sub esp, 0x18
mov eax, dword [esp + 0x8c]
sub eax, 0xfffffffc
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411665
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov ebx, eax
mov eax, dword [0x448398]
mov ecx, dword [esp + 0x8c]
xor edx, edx
lea edx, [esp + 0x394]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x8c]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
mov eax, dword [esp + 0x4c]
cmp eax, 0
je 0x4116ee
jmp 0x4117b7
mov dword [esp + 0x29c], ecx
call fcn.00408890
mov ecx, 0x24
cdq
idiv ecx
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov eax, ebx
add eax, 2
mov word [ebx], cx
mov ecx, dword [esp + 0x29c]
add ecx, 1
mov ebx, eax
jmp 0x4114dc
mov al, byte [esp + 0x88]
mov byte [esp + 0x124], al
mov byte [esp + 0x230], 0xfe
mov byte [esp + 0x231], 0x8b
mov byte [esp + 0x232], 0x31
mov byte [esp + 0x233], 0x89
mov byte [esp + 0x234], 0
mov byte [esp + 0x235], 0x87
mov byte [esp + 0x236], 0x3d
mov byte [esp + 0x237], 0x85
mov byte [esp + 0x238], 0x84
mov byte [esp + 0x239], 0x83
mov eax, 0xa
mov byte [esp + eax + 0x230], 0
add eax, 1
cmp eax, 0xe
jne 0x411751
xor eax, eax
mov edi, dword [esp + 0x30]
cmp eax, 0xe
jae 0x41179f
movzx edx, byte [esp + eax + 0x230]
mov ecx, eax
add ecx, 0x6e580da3
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xa0
xor ecx, 0xd0
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x230], cl
add eax, 1
jmp 0x411767
lea eax, [esp + 0x230]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00413250
jmp 0x4119e1
cmp eax, 1
jne 0x4118eb
mov al, byte [esp + 0x84]
mov byte [esp + 0x128], al
mov byte [esp + 0x220], 0x2e
mov byte [esp + 0x221], 0x7b
mov byte [esp + 0x222], 0x16
mov byte [esp + 0x223], 0x79
mov byte [esp + 0x224], 0xec
mov byte [esp + 0x225], 0x67
mov byte [esp + 0x226], 0xf2
mov byte [esp + 0x227], 0x65
mov byte [esp + 0x228], 0x64
mov byte [esp + 0x229], 0x63
mov eax, 0xa
mov byte [esp + eax + 0x220], 0
add eax, 1
cmp eax, 0xe
jne 0x411823
xor eax, eax
cmp eax, 0xe
jae 0x4118cf
movzx edx, byte [esp + eax + 0x220]
mov edi, eax
shl edi, 1
and edi, 0x1f314fd6
mov ecx, eax
xor ecx, 0xf98a7eb
add ecx, edi
mov dword [esp + 0x2c], ebx
mov ebx, ecx
and ebx, edx
mov edi, ebx
and edi, 2
xor edi, 2
mov dword [esp + 0x48], eax
mov eax, ebx
and eax, 0xfd
imul eax, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
add ebx, eax
add ecx, edx
mov edx, ecx
sub edx, ebx
mov ebx, 1
sub ebx, edx
and ebx, 1
and ecx, 1
xor edx, 1
add edx, 0x68
or ecx, edx
sub ecx, ebx
mov ebx, dword [esp + 0x2c]
add cl, 1
mov eax, dword [esp + 0x48]
mov byte [esp + eax + 0x220], cl
mov eax, dword [esp + 0x48]
shl eax, 1
and eax, 2
xor dword [esp + 0x48], 1
add dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
jmp 0x411835
lea eax, [esp + 0x220]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00413250
mov edi, dword [esp + 0x30]
jmp 0x4119e1
cmp eax, 2
mov edi, dword [esp + 0x30]
jne 0x4119e1
mov al, byte [esp + 0x80]
mov byte [esp + 0x12c], al
mov byte [esp + 0x210], 0x6e
mov byte [esp + 0x211], 0x81
mov byte [esp + 0x212], 0x32
mov byte [esp + 0x213], 0x83
mov byte [esp + 0x214], 0x37
mov byte [esp + 0x215], 0x85
mov byte [esp + 0x216], 0x77
mov byte [esp + 0x217], 0x87
mov byte [esp + 0x218], 0x88
mov byte [esp + 0x219], 0x89
mov eax, 0xa
mov byte [esp + eax + 0x210], 0
add eax, 1
cmp eax, 0x10
jne 0x41195b
xor eax, eax
cmp eax, 0x10
jae 0x4119ca
movzx ecx, byte [esp + eax + 0x210]
mov edx, eax
add edx, 0x771ae2e0
xor edx, ecx
mov ecx, edx
add ecx, 0x48
mov edi, 0xb7
sub edi, edx
and edi, 0xa9
and ecx, 0x56
or ecx, 1
sub ecx, edi
mov byte [esp + eax + 0x210], cl
mov edx, eax
xor edx, 0xfffffffe
mov ecx, eax
or ecx, 1
and ecx, edx
mov edx, eax
and edx, 1
xor edx, 0xffffffff
add eax, 2
add eax, edx
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
jmp 0x41196d
lea eax, [esp + 0x210]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00413250
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x264]
xor ecx, ecx
mov dword [esp + 0x2c], ebx
mov dword [esp], ebx
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.0043b890
mov ebx, eax
cmp ebx, 0
jl 0x411ba6
mov eax, dword [esp + 0x270]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x264]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043c010
mov dword [esp + 0x2d4], eax
jmp 0x411a62
mov eax, dword [esp + 0x264]
mov dword [esp + 0x2cc], eax
mov al, byte [esp + 0xf8]
mov byte [esp + 0x158], al
mov byte [esp + 0xfc], 0xf7
mov byte [esp + 0xfd], 0xf6
mov byte [esp + 0xfe], 0xf5
mov byte [esp + 0xff], 0xf4
mov eax, 4
mov edi, dword [esp + 0x30]
mov byte [esp + eax + 0xfc], 0
add eax, 1
cmp eax, 7
jne 0x411aa7
xor eax, eax
cmp eax, 7
jae 0x411b1f
movzx edx, byte [esp + eax + 0xfc]
mov edi, eax
add edi, 0xa163152c
mov ecx, 0x1e9cead3
sub ecx, eax
and ecx, 0x13445924
and edi, 0xecbba6db
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x24
mov edi, ecx
and edi, 1
xor edi, 1
and ecx, 1
xor ecx, 1
or ecx, edi
mov edi, 0xdc
sub edi, edx
or edi, 1
sub ecx, edi
mov edi, dword [esp + 0x30]
mov byte [esp + eax + 0xfc], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x411ab9
mov ecx, dword [esp + 0xfc]
xor edx, edx
cmp edx, dword [0x44839c]
jb 0x411b32
jmp 0x411b9f
mov eax, dword [0x4483a0]
cmp dword [eax + edx*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x411b48
jmp 0x411b93
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
je 0x411b93
mov dword [esp + 0x2b8], ecx
mov ecx, dword [0x4483a4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0xc], eax
mov dword [esp + 0x2a4], edx
call fcn.00437ec0
mov edx, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2b8]
jmp 0x411b93
test bl, 1
jne 0x411b9d
add edx, 1
jmp 0x411b28
jmp 0x411b9f
mov ebx, dword [esp + 0x2d4]
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00434ed0
mov dword [esp + 0x40], 0
cmp ebx, 0
jge 0x411bd9
mov dword [esp + 0x38], 0
mov eax, 4
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x2c]
jmp 0x4122ff
mov ecx, dword [esp + 0x4c]
cmp ecx, 1
mov ebx, dword [esp + 0x2c]
jne 0x411fe9
mov al, byte [esp + 0x7c]
mov byte [esp + 0x130], al
mov byte [esp + 0x208], 0x96
mov byte [esp + 0x209], 0xa9
mov byte [esp + 0x20a], 0x3a
mov eax, 3
mov byte [esp + eax + 0x208], 0
add eax, 1
cmp eax, 7
jne 0x411c12
xor eax, eax
cmp eax, 7
jae 0x411c6f
movzx edi, byte [esp + eax + 0x208]
mov ecx, 0xf4
sub ecx, eax
or ecx, edi
mov edx, 0xf4
sub edx, eax
and edx, edi
mov edi, edx
shl edi, 1
xor edi, 0xffffffff
add edx, edi
and edx, ecx
mov cl, 0xc8
sub cl, dl
mov byte [esp + eax + 0x208], 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 0x411c24
lea eax, [esp + 0x208]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x58], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0x134], al
mov byte [esp + 0x200], 0xa3
mov byte [esp + 0x201], 0xad
mov byte [esp + 0x202], 0xda
mov eax, 3
mov byte [esp + eax + 0x200], 0
add eax, 1
cmp eax, 7
jne 0x411cb2
xor eax, eax
cmp eax, 7
jae 0x411d35
movzx edx, byte [esp + eax + 0x200]
mov ebx, 0xb0
sub ebx, eax
mov ecx, 0xb0
sub ecx, eax
or ebx, ecx
mov ecx, 0xb0
sub ecx, eax
and ebx, ecx
mov ecx, eax
add ecx, 0xf038d84f
or ecx, edx
xor ebx, 0xffffffff
and edx, ebx
xor ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x9dc78ce8
mov edx, ecx
xor edx, 0x4ee3c674
add edx, edi
mov edi, edx
xor edi, 0xffffffff
or edi, 1
and ecx, 1
mov ebx, edx
sub ebx, ecx
add edx, edi
add ebx, edx
add bl, 2
mov byte [esp + eax + 0x200], bl
mov ebx, dword [esp + 0x2c]
add eax, 1
jmp 0x411cc4
lea eax, [esp + 0x200]
mov ecx, dword [esp + 0x3c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x54], eax
mov dword [esp], ebx
call fcn.004132a0
mov edi, eax
cmp dword [esp + 0x58], 0
setne cl
xor eax, eax
mov byte [esp + 0x46], cl
test cl, 1
jne 0x411d6f
jmp 0x411d82
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.004082e0
jmp 0x411d7d
add eax, 1
jmp 0x411d82
cmp dword [esp + 0x54], 0
setne cl
xor edx, edx
mov byte [esp + 0x47], cl
test cl, 1
mov dword [esp + 0x25c], eax
jne 0x411d9e
jmp 0x411dbd
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.004082e0
mov edx, eax
and edx, 1
or eax, 1
add edx, eax
mov eax, dword [esp + 0x25c]
jmp 0x411dbd
add edi, 9
add edi, eax
xor ecx, ecx
sub ecx, edi
xor eax, eax
mov dword [esp + 0x260], edx
sub eax, edx
add ecx, eax
xor eax, eax
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 0x411df7
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x74]
mov byte [esp + 0x138], al
mov byte [esp + 0x1e8], 0xae
mov byte [esp + 0x1e9], 0x39
mov byte [esp + 0x1ea], 0xab
mov byte [esp + 0x1eb], 0x3f
mov byte [esp + 0x1ec], 0xae
mov byte [esp + 0x1ed], 0x3d
mov byte [esp + 0x1ee], 0x86
mov byte [esp + 0x1ef], 0x23
mov byte [esp + 0x1f0], 0x8c
mov byte [esp + 0x1f1], 0x21
mov byte [esp + 0x1f2], 0x8a
mov byte [esp + 0x1f3], 0x27
mov byte [esp + 0x1f4], 0x73
mov byte [esp + 0x1f5], 0x25
mov byte [esp + 0x1f6], 0x7c
mov byte [esp + 0x1f7], 0x2b
mov byte [esp + 0x1f8], 0x28
mov byte [esp + 0x1f9], 0x29
mov eax, 0x12
mov byte [esp + eax + 0x1e8], 0
add eax, 1
cmp eax, 0x15
jne 0x411ea3
xor eax, eax
cmp eax, 0x15
jae 0x411f11
movzx ecx, byte [esp + eax + 0x1e8]
mov edx, eax
and edx, 0x79c1ca08
mov edi, eax
and edi, 2
xor edi, 2
mov ebx, eax
and ebx, 0x79c1ca08
imul ebx, edi
mov edi, eax
and edi, 2
or edx, 2
imul edx, edi
add edx, ebx
mov ebx, eax
xor ebx, 0x79c1ca0a
add ebx, edx
mov edx, ebx
and edx, ecx
shl edx, 1
add ebx, ecx
sub ebx, edx
add bl, 0xce
mov byte [esp + eax + 0x1e8], bl
mov ebx, dword [esp + 0x2c]
add eax, 1
jmp 0x411eb5
lea eax, [esp + 0x1e8]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409db0
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], ebx
call fcn.00409db0
mov ecx, ebx
mov ebx, eax
add ebx, 2
mov word [eax], 0x22
mov dword [esp], ecx
call fcn.00408170
mov edx, dword [esp + 0x260]
mov ecx, dword [esp + 0x25c]
test byte [esp + 0x46], 1
jne 0x411f74
mov edi, ebx
jmp 0x411fa9
mov edi, ebx
add edi, 2
mov word [ebx], 0x2c
xor eax, eax
mov dword [esp], edi
mov dword [esp + 4], ecx
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a950
shl eax, 1
add edi, eax
mov edx, dword [esp + 0x260]
jmp 0x411fa9
test byte [esp + 0x47], 1
jne 0x411fb2
jmp 0x411fdc
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 + 0x54]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a950
jmp 0x411fdc
xor ebx, ebx
xor ecx, ecx
mov edi, dword [esp + 0x30]
jmp 0x4122fb
cmp ecx, 2
sete al
mov dword [esp + 0x38], 0
test al, 1
jne 0x412000
jmp 0x4122fb
mov dword [esp], ebx
call fcn.004132a0
add eax, 0xeb9bf7d1
sub eax, 0xeb9bf7b4
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41202b
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x68]
mov byte [esp + 0x13c], al
mov byte [esp + 0x6c], 0x62
mov byte [esp + 0x6d], 0x5b
mov byte [esp + 0x6e], 0x5a
mov byte [esp + 0x6f], 0x59
mov eax, 4
mov byte [esp + eax + 0x6c], 0
add eax, 1
cmp eax, 7
jne 0x41205b
xor eax, eax
cmp eax, 7
jae 0x412099
movzx edx, byte [esp + eax + 0x6c]
mov ecx, eax
add ecx, 0xff72fe0f
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xb4
add ecx, edx
mov byte [esp + eax + 0x6c], cl
add eax, 1
jmp 0x41206a
mov al, byte [esp + 0x64]
mov byte [esp + 0x140], al
mov byte [esp + 0x170], 0x14
mov byte [esp + 0x171], 0x6b
mov byte [esp + 0x172], 0x1b
mov byte [esp + 0x173], 0x69
mov byte [esp + 0x174], 0x11
mov byte [esp + 0x175], 0x6f
mov byte [esp + 0x176], 5
mov byte [esp + 0x177], 0x6d
mov byte [esp + 0x178], 0x1a
mov byte [esp + 0x179], 0x73
mov byte [esp + 0x17a], 7
mov byte [esp + 0x17b], 0x71
mov byte [esp + 0x17c], 0x18
mov byte [esp + 0x17d], 0x77
mov byte [esp + 0x17e], 0x1d
mov byte [esp + 0x17f], 0x75
mov byte [esp + 0x180], 0x18
mov byte [esp + 0x181], 0x7b
mov byte [esp + 0x182], 0x16
mov byte [esp + 0x183], 0x79
mov byte [esp + 0x184], 0x58
mov byte [esp + 0x185], 0x7f
mov byte [esp + 0x186], 0x4d
mov byte [esp + 0x187], 0x7d
mov byte [esp + 0x188], 0x17
mov byte [esp + 0x189], 0x83
mov byte [esp + 0x18a], 0xfa
mov byte [esp + 0x18b], 0x81
mov byte [esp + 0x18c], 0xeb
mov byte [esp + 0x18d], 0x87
mov byte [esp + 0x18e], 0xe3
mov byte [esp + 0x18f], 0x85
mov byte [esp + 0x190], 0xa4
mov byte [esp + 0x191], 0x8b
mov byte [esp + 0x192], 0xec
mov byte [esp + 0x193], 0x89
mov byte [esp + 0x194], 0xf7
mov byte [esp + 0x195], 0x8f
mov byte [esp + 0x196], 0xfe
mov byte [esp + 0x197], 0x8d
mov byte [esp + 0x198], 0xeb
mov byte [esp + 0x199], 0x93
mov byte [esp + 0x19a], 0xe7
mov byte [esp + 0x19b], 0x91
mov byte [esp + 0x19c], 0xe5
mov byte [esp + 0x19d], 0x97
mov byte [esp + 0x19e], 0xb6
mov byte [esp + 0x19f], 0x95
mov byte [esp + 0x1a0], 0xa7
mov byte [esp + 0x1a1], 0x9b
mov byte [esp + 0x1a2], 0xf0
mov byte [esp + 0x1a3], 0x99
mov byte [esp + 0x1a4], 0xb8
mov byte [esp + 0x1a5], 0x9f
mov byte [esp + 0x1a6], 0xb8
mov byte [esp + 0x1a7], 0x9d
mov byte [esp + 0x1a8], 0x9c
mov byte [esp + 0x1a9], 0xa3
mov eax, 0x3a
mov byte [esp + eax + 0x170], 0
add eax, 1
cmp eax, 0x3e
jne 0x412279
xor eax, eax
cmp eax, 0x3e
jae 0x4122bd
movzx edx, byte [esp + eax + 0x170]
mov edi, eax
add edi, 0x67
and edi, edx
xor edx, 0xffffffff
mov ecx, 0x98
sub ecx, eax
and ecx, edx
or ecx, edi
mov dl, 0xfc
sub dl, cl
mov byte [esp + eax + 0x170], dl
add eax, 1
jmp 0x41228b
lea eax, [esp + 0x170]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409db0
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00409db0
lea ecx, [esp + 0x6c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409db0
mov edi, dword [esp + 0x30]
mov ecx, 2
jmp 0x4122fb
xor eax, eax
jmp 0x4122ff
cmp eax, 0
mov al, byte [esp + 0x37]
je 0x412610
jmp 0x412e52
xor ebx, 1
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
test al, 1
jne 0x412335
mov dword [esp + 0x38], 0
xor ebx, ebx
mov al, byte [esp + 0x37]
jmp 0x412610
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00412e70
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41235e
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov edx, dword [esp + 0x40]
xor ecx, ecx
mov dword [esp + 0x250], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a950
mov eax, dword [esp + 0x270]
xor ecx, ecx
sub ecx, eax
mov eax, 0x18
sub eax, ecx
mov ecx, eax
and ecx, 1
shl ecx, 1
xor eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4123bf
mov ecx, eax
mov dword [esp], ecx
call fcn.00408160
mov ebx, eax
mov cl, byte [esp + 0x60]
mov byte [esp + 0x144], cl
mov byte [esp + 0x1b0], 0x7c
mov byte [esp + 0x1b1], 0xcf
mov byte [esp + 0x1b2], 0x7f
mov byte [esp + 0x1b3], 0xd1
mov byte [esp + 0x1b4], 0x69
mov byte [esp + 0x1b5], 0xd3
mov byte [esp + 0x1b6], 0x75
mov byte [esp + 0x1b7], 0xd5
mov byte [esp + 0x1b8], 0x66
mov byte [esp + 0x1b9], 0xd7
mov byte [esp + 0x1ba], 0x63
mov byte [esp + 0x1bb], 0xd9
mov byte [esp + 0x1bc], 0x70
mov byte [esp + 0x1bd], 0xdb
mov byte [esp + 0x1be], 0x7d
mov byte [esp + 0x1bf], 0xdd
mov byte [esp + 0x1c0], 0x70
mov byte [esp + 0x1c1], 0xdf
mov byte [esp + 0x1c2], 0x72
mov byte [esp + 0x1c3], 0xa1
mov byte [esp + 0x1c4], 0x40
mov byte [esp + 0x1c5], 0xa3
mov byte [esp + 0x1c6], 0x4d
mov byte [esp + 0x1c7], 0xa5
mov byte [esp + 0x1c8], 3
mov byte [esp + 0x1c9], 0xa7
mov byte [esp + 0x1ca], 0x1e
mov byte [esp + 0x1cb], 0xa9
mov byte [esp + 0x1cc], 0xf
mov byte [esp + 0x1cd], 0xab
mov byte [esp + 0x1ce], 0xf
mov byte [esp + 0x1cf], 0xad
mov byte [esp + 0x1d0], 0x4c
mov byte [esp + 0x1d1], 0xaf
mov byte [esp + 0x1d2], 0xc
mov byte [esp + 0x1d3], 0xb1
mov byte [esp + 0x1d4], 0xb
mov byte [esp + 0x1d5], 0xb3
mov byte [esp + 0x1d6], 2
mov byte [esp + 0x1d7], 0xb5
mov byte [esp + 0x1d8], 0x17
mov byte [esp + 0x1d9], 0xb7
mov byte [esp + 0x1da], 3
mov byte [esp + 0x1db], 0xb9
mov byte [esp + 0x1dc], 0xd
mov byte [esp + 0x1dd], 0xbb
mov byte [esp + 0x1de], 0x5a
mov byte [esp + 0x1df], 0xbd
mov byte [esp + 0x1e0], 0xbc
mov byte [esp + 0x1e1], 0xbf
mov ecx, 0x32
mov byte [esp + ecx + 0x1b0], 0
add ecx, 1
cmp ecx, 0x38
jne 0x412569
xor eax, eax
mov dword [esp + 0x38], ebx
cmp eax, 0x38
jae 0x4125cb
movzx edx, byte [esp + eax + 0x1b0]
mov ecx, 0xd2
sub ecx, eax
and ecx, edx
mov edi, 0xe31148d2
sub edi, eax
mov ebx, 0xe31148d2
sub ebx, eax
and edi, ebx
mov ebx, dword [esp + 0x38]
or edi, edx
xor edi, 0xffffffff
or ecx, edi
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0x1e
add ecx, edx
mov byte [esp + eax + 0x1b0], cl
add eax, 1
jmp 0x41257f
lea ecx, [esp + 0x1b0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00409db0
mov dword [esp], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
call fcn.00409db0
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x250]
mov dword [esp], eax
call fcn.00408170
mov al, byte [esp + 0x37]
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
jmp 0x412610
test ecx, ecx
je 0x412631
jmp 0x412616
mov eax, ecx
sub eax, 1
je 0x41280c
jmp 0x412623
sub ecx, 2
je 0x412b17
jmp 0x412e26
test al, 1
jne 0x41263a
jmp 0x41280c
lea edi, [esp + 0x350]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x350], 0x44
mov eax, dword [0x448390]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043aff0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x350]
lea edx, [esp + 0x2fc]
mov dword [esp], ebx
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 0x412803
mov eax, dword [esp + 0x2fc]
mov dword [esp + 0x2c0], eax
mov al, byte [esp + 0xec]
mov byte [esp + 0x15c], al
mov byte [esp + 0xf0], 0xf7
mov byte [esp + 0xf1], 0xf6
mov byte [esp + 0xf2], 0xf5
mov byte [esp + 0xf3], 0xf4
mov eax, 4
mov byte [esp + eax + 0xf0], 0
add eax, 1
cmp eax, 7
jne 0x412711
xor eax, eax
cmp eax, 7
jae 0x412785
movzx edx, byte [esp + eax + 0xf0]
mov edi, eax
add edi, 0xa163152c
mov ecx, 0x1e9cead3
sub ecx, eax
and ecx, 0x13445924
and edi, 0xecbba6db
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x24
mov edi, ecx
and edi, 1
xor edi, 1
and ecx, 1
xor ecx, 1
or ecx, edi
mov edi, 0xdc
sub edi, edx
or edi, 1
sub ecx, edi
mov byte [esp + eax + 0xf0], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412723
mov ecx, dword [esp + 0xf0]
xor edi, edi
cmp edi, dword [0x44839c]
jb 0x412798
jmp 0x412803
mov dword [esp + 0x2c], ebx
mov eax, dword [0x4483a0]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x4127b2
jmp 0x4127ef
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4127ef
mov dword [esp + 0x2a8], ecx
mov ecx, dword [0x4483a4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c0]
mov dword [esp + 0xc], eax
call fcn.00437ec0
mov ecx, dword [esp + 0x2a8]
jmp 0x4127ef
test bl, 1
jne 0x4127fd
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x41278e
mov ebx, dword [esp + 0x2c]
jmp 0x412803
mov edi, dword [esp + 0x30]
jmp 0x412e26
mov eax, dword [0x448390]
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.0043aff0
test eax, eax
setne cl
mov ecx, dword [esp + 0x40]
xor edx, edx
lea edx, [0x41d9b0]
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 0x412b12
jmp 0x412869
mov dword [esp + 0x2e4], 0xffffffff
mov dword [esp + 0x2e0], 0xdc3cba00
mov cl, byte [esp + 0x148]
mov byte [esp + 0x154], cl
mov byte [esp + 0x14c], 0xf7
mov byte [esp + 0x14d], 0xf6
mov byte [esp + 0x14e], 0xf5
mov byte [esp + 0x14f], 0xf4
mov ecx, 4
mov byte [esp + ecx + 0x14c], 0
add ecx, 1
cmp ecx, 7
jne 0x4128b2
mov dword [esp + 0x2c], ebx
xor ecx, ecx
cmp ecx, 7
jae 0x41292a
movzx edi, byte [esp + ecx + 0x14c]
mov ebx, ecx
add ebx, 0xa163152c
mov edx, 0x1e9cead3
sub edx, ecx
and edx, 0x13445924
and ebx, 0xecbba6db
or edx, ebx
xor edx, edi
mov edi, edx
xor edi, 0x24
mov ebx, edx
and ebx, 1
xor ebx, 1
and edx, 1
xor edx, 1
or edx, ebx
mov ebx, 0xdc
sub ebx, edi
or ebx, 1
sub edx, ebx
mov byte [esp + ecx + 0x14c], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x4128c8
mov ecx, dword [esp + 0x14c]
mov dword [esp + 0x2bc], ecx
xor edi, edi
mov ebx, dword [esp + 0x2c]
mov ecx, 2
cmp edi, dword [0x44839c]
jb 0x412950
jmp 0x4129e0
mov edx, dword [0x4483a0]
cmp dword [edx + edi*8], 0x4e66b5a3
sete bl
xor ecx, ecx
test bl, 1
jne 0x412969
jmp 0x4129c9
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esp + 0x2bc]
je 0x4129c9
mov ecx, dword [0x4483a4]
mov dword [esp + 0x294], ecx
xor ecx, ecx
mov ecx, dword [esp + 0x294]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], 3
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
lea ecx, [esp + 0x2e0]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x5c], eax
call fcn.00437ec0
mov eax, dword [esp + 0x5c]
mov ecx, 1
test bl, 1
je 0x4129d4
mov ebx, dword [esp + 0x2c]
jmp 0x4129e0
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x41293e
cmp ecx, 2
jne 0x4129e5
mov cl, byte [esp + 0xe0]
mov byte [esp + 0x160], cl
mov byte [esp + 0xe4], 0xf7
mov byte [esp + 0xe5], 0xf6
mov byte [esp + 0xe6], 0xf5
mov byte [esp + 0xe7], 0xf4
mov ecx, 4
mov byte [esp + ecx + 0xe4], 0
add ecx, 1
cmp ecx, 7
jne 0x412a18
xor ecx, ecx
cmp ecx, 7
jae 0x412a90
movzx edi, byte [esp + ecx + 0xe4]
mov ebx, ecx
add ebx, 0xa163152c
mov edx, 0x1e9cead3
sub edx, ecx
and edx, 0x13445924
and ebx, 0xecbba6db
or edx, ebx
xor edx, edi
mov edi, edx
xor edi, 0x24
mov ebx, edx
and ebx, 1
xor ebx, 1
and edx, 1
xor edx, 1
or edx, ebx
mov ebx, 0xdc
sub ebx, edi
or ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x2c]
mov byte [esp + ecx + 0xe4], dl
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x412a2a
mov edx, dword [esp + 0xe4]
xor edi, edi
cmp edi, dword [0x44839c]
jb 0x412aa3
jmp 0x412b0c
mov ecx, dword [0x4483a0]
cmp dword [ecx + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x412aba
jmp 0x412af8
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, edx
je 0x412af8
mov dword [esp + 0x2ac], edx
mov edx, dword [0x4483a4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov dword [esp + 0xc], eax
mov dword [esp + 0x5c], eax
call fcn.00437ec0
mov edx, dword [esp + 0x2ac]
mov eax, dword [esp + 0x5c]
jmp 0x412af8
test bl, 1
jne 0x412b06
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412a99
mov ebx, dword [esp + 0x2c]
jmp 0x412b0c
mov edi, dword [esp + 0x30]
jmp 0x412b12
jmp 0x412e26
call fcn.004132c0
lea edi, [esp + 0x30c]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x30c], 0x44
mov eax, dword [0x448390]
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043aff0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x30c]
lea edx, [esp + 0x2ec]
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
setne al
test al, 1
mov edi, dword [esp + 0x30]
jne 0x412bc0
jmp 0x412e26
mov eax, dword [esp + 0x2f0]
mov dword [esp + 0x2c8], eax
mov al, byte [esp + 0xd4]
mov byte [esp + 0x164], al
mov byte [esp + 0xd8], 0xf7
mov byte [esp + 0xd9], 0xf6
mov byte [esp + 0xda], 0xf5
mov byte [esp + 0xdb], 0xf4
mov eax, 4
mov byte [esp + eax + 0xd8], 0
add eax, 1
cmp eax, 7
jne 0x412c01
xor eax, eax
cmp eax, 7
jae 0x412c75
movzx edx, byte [esp + eax + 0xd8]
mov edi, eax
add edi, 0xa163152c
mov ecx, 0x1e9cead3
sub ecx, eax
and ecx, 0x13445924
and edi, 0xecbba6db
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x24
mov edi, ecx
and edi, 1
xor edi, 1
and ecx, 1
xor ecx, 1
or ecx, edi
mov edi, 0xdc
sub edi, edx
or edi, 1
sub ecx, edi
mov byte [esp + eax + 0xd8], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412c13
mov ecx, dword [esp + 0xd8]
xor edi, edi
mov dword [esp + 0x2c], ebx
cmp edi, dword [0x44839c]
jb 0x412c8c
jmp 0x412cf3
mov eax, dword [0x4483a0]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x412ca2
jmp 0x412cdf
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412cdf
mov dword [esp + 0x2b4], ecx
mov ecx, dword [0x4483a4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0xc], eax
call fcn.00437ec0
mov ecx, dword [esp + 0x2b4]
jmp 0x412cdf
test bl, 1
jne 0x412ced
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412c82
mov ebx, dword [esp + 0x2c]
jmp 0x412cf3
mov eax, dword [esp + 0x2ec]
mov dword [esp + 0x2c4], eax
mov al, byte [esp + 0xc8]
mov byte [esp + 0x168], al
mov byte [esp + 0xcc], 0xf7
mov byte [esp + 0xcd], 0xf6
mov byte [esp + 0xce], 0xf5
mov byte [esp + 0xcf], 0xf4
mov eax, 4
mov byte [esp + eax + 0xcc], 0
add eax, 1
cmp eax, 7
jne 0x412d34
xor eax, eax
cmp eax, 7
jae 0x412da8
movzx edx, byte [esp + eax + 0xcc]
mov edi, eax
add edi, 0xa163152c
mov ecx, 0x1e9cead3
sub ecx, eax
and ecx, 0x13445924
and edi, 0xecbba6db
or ecx, edi
xor ecx, edx
mov edx, ecx
xor edx, 0x24
mov edi, ecx
and edi, 1
xor edi, 1
and ecx, 1
xor ecx, 1
or ecx, edi
mov edi, 0xdc
sub edi, edx
or edi, 1
sub ecx, edi
mov byte [esp + eax + 0xcc], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412d46
mov ecx, dword [esp + 0xcc]
xor edi, edi
cmp edi, dword [0x44839c]
jb 0x412dbb
jmp 0x412e22
mov eax, dword [0x4483a0]
cmp dword [eax + edi*8], 0xb62b8d10
sete bl
test bl, 1
jne 0x412dd1
jmp 0x412e0e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412e0e
mov dword [esp + 0x2b0], ecx
mov ecx, dword [0x4483a4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0xc], eax
call fcn.00437ec0
mov ecx, dword [esp + 0x2b0]
jmp 0x412e0e
test bl, 1
jne 0x412e1c
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412db1
mov ebx, dword [esp + 0x2c]
jmp 0x412e22
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call fcn.00434ed0
cmp ebx, 0
je 0x412e3f
mov dword [esp], ebx
call fcn.00408170
mov eax, dword [esp + 0x38]
cmp eax, 0
je 0x412e50
mov dword [esp], eax
call fcn.00408170
jmp 0x412e52
jmp 0x412e54
add edi, 1
jmp 0x410dec
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret