Function at 0x4119c0
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, 0x7f0
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b80
mov esi, eax
cmp esi, 0
jne 0x4119e8
xor eax, eax
jmp 0x413e32
xor ebx, ebx
jmp 0x4119ec
mov dword [esp], esi
call fcn.00401f50
cmp ebx, eax
jb 0x4119ff
mov al, 1
jmp 0x413e32
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00401f60
mov cl, byte [esp + 0x1ac]
mov byte [esp + 0x1c4], cl
mov byte [esp + 0x36], 0xbb
mov byte [esp + 0x37], 0x2f
mov cl, byte [esp + 0x36]
xor cl, 0xde
add cl, 0x10
mov byte [esp + 0x36], cl
mov cl, byte [esp + 0x37]
xor cl, 0xdf
add cl, 0x10
mov byte [esp + 0x37], cl
lea ecx, [esp + 0x36]
mov dword [esp + 0x6c], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401e50
cmp eax, 0
setne al
test al, 1
jne 0x411a6a
jmp 0x411bcf
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x1c8], al
mov byte [esp + 0x83], 0x9d
mov byte [esp + 0x84], 0x68
mov byte [esp + 0x85], 0xfd
xor eax, eax
cmp eax, 3
jae 0x411af4
movzx edx, byte [esp + eax + 0x83]
mov edi, eax
xor edi, 0xc8dce41d
mov ecx, eax
shl ecx, 1
and ecx, 0x6e4637c4
sub ecx, edi
mov edi, edx
and edi, 0xc5
or edi, 0x1440022
and edx, 0x3a
xor edx, edi
xor edx, 0xddde6ee7
xor ecx, 0xdc9a6ec5
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
add cl, 0xe8
mov byte [esp + eax + 0x83], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x411a92
lea eax, [esp + 0x83]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e50
cmp eax, 0
setne al
test al, 1
jne 0x411b22
jmp 0x411bcf
mov al, byte [esp + 0x1a4]
mov byte [esp + 0x1cc], al
mov byte [esp + 0x34], 0xee
mov byte [esp + 0x35], 0x8c
movzx eax, byte [esp + 0x34]
mov ecx, eax
and ecx, 0xe475d13
mov edx, ecx
and edx, 2
xor edx, 2
mov edi, ecx
and edi, 0xfd
imul edi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, edi
add eax, 0xe475d13
sub eax, ecx
add al, 0x68
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x35]
mov ecx, eax
and ecx, 0xe475d14
and ecx, 0xfd
shl ecx, 1
add eax, 0xe475d14
sub eax, ecx
add al, 0x68
mov byte [esp + 0x35], al
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e50
cmp eax, 0
setne cl
mov al, cl
xor al, 0xff
xor cl, 0xff
or al, cl
and al, 0xff
xor al, 0xff
and al, 0xff
xor al, 0xff
test al, 1
jne 0x411bd3
jmp 0x411bd8
jmp 0x411bd1
jmp 0x411bd3
jmp 0x413e2a
mov dword [esp + 0x68], ebx
mov al, byte [esp + 0x1a0]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x32], 0xcc
mov byte [esp + 0x33], 0xba
movzx edx, byte [esp + 0x32]
xor edx, 0x22931c31
mov edi, edx
add edi, 0x77
mov eax, edx
and eax, 1
xor eax, 1
mov ecx, 0x1498e188
sub ecx, edx
mov edx, ecx
and edx, 4
and edi, 0xfb
or edx, edi
xor edx, 5
and ecx, 1
xor ecx, 1
or edx, ecx
add eax, edx
mov byte [esp + 0x32], al
movzx edx, byte [esp + 0x33]
xor edx, 0x22931c32
mov edi, edx
add edi, 0x77
mov eax, edx
and eax, 1
xor eax, 1
mov ecx, 0x1498e188
sub ecx, edx
mov edx, ecx
and edx, 4
and edi, 0xfb
or edx, edi
xor edx, 5
and ecx, 1
xor ecx, 1
or edx, ecx
add eax, edx
mov byte [esp + 0x33], al
lea eax, [esp + 0x32]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x278], eax
mov al, byte [esp + 0x19c]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x80], 0x1e
mov byte [esp + 0x81], 0xd
mov byte [esp + 0x82], 0xfa
xor edi, edi
cmp edi, 3
jae 0x411d08
movzx ebx, byte [esp + edi + 0x80]
mov ecx, edi
add ecx, 0x38
mov eax, ebx
add eax, 1
mov edx, ebx
xor edx, 0xffffffff
or ecx, edx
add ecx, eax
mov eax, ecx
and eax, 2
xor eax, 2
mov edx, ecx
and edx, 0xfd
imul edx, eax
mov eax, ecx
and eax, 2
or ecx, 2
imul ecx, eax
add ecx, edx
mov eax, edi
add eax, 0x38
add eax, ebx
sub eax, ecx
add al, 0x40
mov byte [esp + edi + 0x80], al
add edi, 1
jmp 0x411cb1
lea eax, [esp + 0x80]
mov dword [esp + 4], eax
mov edi, dword [esp + 0x6c]
mov dword [esp], edi
call fcn.00401990
fnstcw word [esp + 0x88]
movzx eax, word [esp + 0x88]
or eax, 0xc00
mov word [esp + 0x236], ax
fldcw word [esp + 0x236]
fistp dword [esp + 0x290]
fldcw word [esp + 0x88]
mov eax, dword [esp + 0x290]
mov dword [esp + 0xb0], eax
mov al, byte [esp + 0x198]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x30], 0xa5
mov byte [esp + 0x31], 0xc1
movzx eax, byte [esp + 0x30]
mov ecx, eax
or ecx, 0x13123100
xor eax, 0x400446c0
and eax, 0x400446c6
and ecx, 0x13123139
lea eax, [eax + ecx + 0x674c41ff]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x31]
mov ecx, eax
or ecx, 0x13123100
xor eax, 0x400446c1
and eax, 0x400446c7
and ecx, 0x13123138
lea eax, [eax + ecx + 0x674c41ff]
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov byte [esp + 0x31], al
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401990
fnstcw word [esp + 0x86]
movzx eax, word [esp + 0x86]
or eax, 0xc00
mov word [esp + 0x234], ax
fldcw word [esp + 0x234]
fistp dword [esp + 0x294]
fldcw word [esp + 0x86]
mov edi, dword [esp + 0x294]
lea eax, [esp + 0x3ec]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x278]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a9b0
lea eax, [esp + 0x3ec]
lea ecx, [esp + 0x64]
lea edx, [esp + 0x248]
xor ebx, ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040b0f0
test al, 1
jne 0x411e89
mov ebx, dword [esp + 0x68]
jmp 0x413e2a
cmp edi, 0
sete al
mov byte [esp + 0x79], al
test al, 1
mov ebx, dword [esp + 0x68]
jne 0x411ea0
jmp 0x413288
mov al, byte [esp + 0x194]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x2e], 0x3e
mov byte [esp + 0x2f], 0xaf
movzx ecx, byte [esp + 0x2e]
mov eax, ecx
shl eax, 1
xor eax, 0xffffffff
add eax, ecx
and eax, 0xdc
mov edx, ecx
xor edx, 0xdc
or ecx, 0x23
and ecx, edx
or eax, ecx
xor eax, 0xd2
xor al, 0x50
add al, 0x10
mov byte [esp + 0x2e], al
movzx ecx, byte [esp + 0x2f]
mov eax, ecx
shl eax, 1
xor eax, 0xffffffff
add eax, ecx
and eax, 0xdc
mov edx, ecx
xor edx, 0xdc
or ecx, 0x23
and ecx, edx
or eax, ecx
xor eax, 0xd3
xor al, 0x50
add al, 0x10
mov byte [esp + 0x2f], al
lea eax, [esp + 0x2e]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
jmp 0x411f2c
cmp eax, 0
je 0x412166
mov dword [esp + 0x24c], eax
mov dword [esp], eax
call fcn.00413e40
mov dword [esp + 0x23c], eax
sub eax, 0xffffffff
mov ecx, 2
mov edi, eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411f66
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x24c]
mov dword [esp + 8], ecx
mov edi, eax
mov dword [esp + 0xc], 0
call fcn.0040a9b0
xor eax, eax
lea eax, [esp + 0x190]
mov dword [esp], 0
mov dword [esp + 0x28], edi
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x23c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x446b2c]
sub esp, 0x18
mov cl, byte [esp + 0x18c]
mov byte [esp + 0x1e0], cl
mov byte [esp + 0x48], 0x57
mov byte [esp + 0x49], 0x35
mov byte [esp + 0x4a], 0x36
mov byte [esp + 0x4b], 0xf7
movzx ecx, byte [esp + 0x48]
mov edx, ecx
xor edx, 0xff6eab94
xor ecx, 0xff6eab94
shl ecx, 1
sub ecx, edx
add cl, 0x60
mov byte [esp + 0x48], cl
movzx ecx, byte [esp + 0x49]
mov edx, ecx
xor edx, 0xff6eab95
xor ecx, 0xff6eab95
shl ecx, 1
sub ecx, edx
add cl, 0x60
mov byte [esp + 0x49], cl
movzx ecx, byte [esp + 0x4a]
mov edx, ecx
xor edx, 0xff6eab96
xor ecx, 0xff6eab96
shl ecx, 1
sub ecx, edx
add cl, 0x60
mov byte [esp + 0x4a], cl
movzx ecx, byte [esp + 0x4b]
mov edx, ecx
xor edx, 0xff6eab97
xor ecx, 0xff6eab97
shl ecx, 1
sub ecx, edx
add cl, 0x60
mov byte [esp + 0x4b], cl
mov ecx, dword [esp + 0x48]
cmp eax, ecx
jne 0x412097
jmp 0x412075
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004082b0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00436dd0
mov eax, 4
jmp 0x412158
mov eax, dword [esp + 0x190]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4120b4
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov edi, dword [0x446b2c]
mov ecx, dword [esp + 0x190]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x28]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x23c]
mov dword [esp + 8], edx
mov dword [esp + 0x238], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x190]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
jge 0x41213b
jmp 0x41210b
mov eax, dword [esp + 0x238]
mov dword [esp], eax
call fcn.004082b0
jmp 0x41211c
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004082b0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00436dd0
mov eax, 4
jmp 0x412158
jmp 0x41213d
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004082b0
xor eax, eax
mov ecx, dword [esp + 0x238]
mov dword [esp + 0x28], ecx
jmp 0x412158
cmp eax, 0
je 0x4128c9
jmp 0x4128cb
call fcn.00408b20
and eax, 0xf
add eax, 0xcbd122d2
add eax, 0x342edd3e
xor ecx, ecx
lea edx, [esp + 0x3ac]
jmp 0x412183
cmp ecx, eax
jb 0x4123bc
mov word [edx], 0
jmp 0x412192
mov al, byte [esp + 0x184]
mov byte [esp + 0x1e8], al
mov byte [esp + 0xb6], 7
mov byte [esp + 0xb7], 0x23
mov byte [esp + 0xb8], 0x50
mov byte [esp + 0xb9], 0x25
mov byte [esp + 0xba], 0x63
mov byte [esp + 0xbb], 0x27
mov byte [esp + 0xbc], 0x65
mov byte [esp + 0xbd], 0x29
mov byte [esp + 0xbe], 0x5a
mov byte [esp + 0xbf], 0x2b
mov byte [esp + 0xc0], 9
mov byte [esp + 0xc1], 0x2d
mov byte [esp + 0xc2], 0x52
mov byte [esp + 0xc3], 0x2f
mov byte [esp + 0xc4], 0x50
mov byte [esp + 0xc5], 0x51
xor eax, eax
cmp eax, 0x10
jae 0x4122a0
movzx edx, byte [esp + eax + 0xb6]
mov edi, eax
add edi, 0x6bed1cb2
mov ecx, 0x9412e34d
sub ecx, eax
or edi, 0xaf2f1602
or ecx, 0x50d0e9fd
and ecx, edi
xor ecx, edx
mov edi, ecx
xor edi, 0xaf2f1602
add edi, 1
mov edx, ecx
and edx, 0x5f68e590
xor edx, 0xf0d7fbff
add edx, edi
and ecx, 0x5f68e590
xor ecx, 0xafbf1e6f
mov edi, ecx
and edi, edx
xor ecx, edx
add ecx, 1
shl edi, 1
add ecx, edi
mov byte [esp + eax + 0xb6], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 0xe
mov edi, eax
xor edi, 1
add eax, edi
sub eax, edx
add eax, ecx
jmp 0x412222
lea eax, [esp + 0x34c]
lea ecx, [esp + 0xb6]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d90
lea ecx, [esp + 0x3ac]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d90
mov edi, eax
lea eax, [esp + 0x34c]
mov ecx, edi
xor ecx, 0xffffffff
and ecx, eax
xor eax, 0xffffffff
and edi, eax
sub edi, ecx
sar edi, 1
xor eax, eax
lea eax, [esp + 0x34c]
lea ecx, [esp + 0x180]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x446b2c]
sub esp, 0x18
mov cl, byte [esp + 0x17c]
mov byte [esp + 0x1ec], cl
mov byte [esp + 0x40], 0x7d
mov byte [esp + 0x41], 0x9f
mov byte [esp + 0x42], 0x80
mov byte [esp + 0x43], 0xc1
movzx ecx, byte [esp + 0x40]
mov edx, ecx
or edx, 0x11
and ecx, 0x11
xor edx, 0xffffffff
or ecx, edx
add cl, 0x90
mov byte [esp + 0x40], cl
movzx ecx, byte [esp + 0x41]
mov edx, ecx
or edx, 0x10
and ecx, 0x10
xor edx, 0xffffffff
or ecx, edx
add cl, 0x90
mov byte [esp + 0x41], cl
movzx ecx, byte [esp + 0x42]
mov edx, ecx
or edx, 0xf
and ecx, 0xf
xor edx, 0xffffffff
or ecx, edx
add cl, 0x90
mov byte [esp + 0x42], cl
movzx ecx, byte [esp + 0x43]
mov edx, ecx
or edx, 0xe
and ecx, 0xe
xor edx, 0xffffffff
or ecx, edx
add cl, 0x90
mov byte [esp + 0x43], cl
cmp eax, dword [esp + 0x40]
setne al
test al, 1
jne 0x41258a
jmp 0x4125a8
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], ecx
mov dword [esp + 0x28c], eax
call fcn.00408b20
mov cl, byte [esp + 0x188]
mov byte [esp + 0x1e4], cl
mov byte [esp + 0x44], 0xb9
mov byte [esp + 0x45], 0xde
mov byte [esp + 0x46], 0xdf
mov byte [esp + 0x47], 0xd0
movzx ecx, byte [esp + 0x44]
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xc7075e75
and ecx, 0x8a
or ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0xc7c50c57
add edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, edi
xor ecx, 0x57
add ecx, 1
add ecx, edx
mov byte [esp + 0x44], cl
movzx ecx, byte [esp + 0x45]
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xc7075e76
and ecx, 0x89
or ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0xc7c50c57
add edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, edi
xor ecx, 0x57
add ecx, 1
add ecx, edx
mov byte [esp + 0x45], cl
movzx ecx, byte [esp + 0x46]
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xc7075e77
and ecx, 0x88
or ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0xc7c50c57
add edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, edi
xor ecx, 0x57
add ecx, 1
add ecx, edx
mov byte [esp + 0x46], cl
movzx ecx, byte [esp + 0x47]
mov edx, ecx
xor edx, 0xffffffff
and edx, 0xc7075e78
and ecx, 0x87
or ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0xc7c50c57
add edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edx, edi
xor ecx, 0x57
add ecx, 1
add ecx, edx
mov byte [esp + 0x47], cl
cdq
idiv dword [esp + 0x44]
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esp + 0x284]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x288]
jmp 0x412579
sub ecx, 0xffffffff
mov edx, eax
mov eax, dword [esp + 0x28c]
jmp 0x412183
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00436dd0
mov dword [esp + 0x28], 0
mov eax, 4
jmp 0x4128bc
mov dword [esp + 0x274], edi
mov eax, dword [esp + 0x180]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4125cf
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov edi, dword [0x446b2c]
mov ecx, dword [esp + 0x180]
xor edx, edx
lea edx, [esp + 0x34c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x274]
mov dword [esp + 8], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0x180]
mov dword [esp + 0x14], eax
call edi
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
mov eax, dword [esp + 0xb0]
jne 0x412656
jmp 0x412632
jmp 0x412634
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004082b0
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00436dd0
mov eax, 4
jmp 0x4128bc
cmp eax, 0
jne 0x412739
mov al, byte [esp + 0x178]
mov byte [esp + 0x1f0], al
mov byte [esp + 0xa6], 0xd0
mov byte [esp + 0xa7], 0x3f
mov byte [esp + 0xa8], 0x85
mov byte [esp + 0xa9], 0x21
mov byte [esp + 0xaa], 0xba
mov byte [esp + 0xab], 0x23
mov byte [esp + 0xac], 0x81
mov byte [esp + 0xad], 0x25
mov byte [esp + 0xae], 0x26
mov byte [esp + 0xaf], 0x27
xor edi, edi
cmp edi, 0xa
jae 0x41271d
movzx eax, byte [esp + edi + 0xa6]
mov dword [esp + 0x144], eax
mov edx, edi
add edx, 0x82452c4e
mov ecx, 0x31
sub ecx, edi
mov eax, edx
xor eax, 0x77
or edx, 0x88
and edx, eax
mov eax, dword [esp + 0x144]
xor eax, 0x77
xor dword [esp + 0x144], 0x77
and eax, dword [esp + 0x144]
and ecx, 0x77
xor ecx, edx
xor eax, ecx
add al, 0x90
mov byte [esp + edi + 0xa6], al
add edi, 1
jmp 0x4126bf
lea eax, [esp + 0xa6]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414210
jmp 0x4128b8
cmp eax, 1
jne 0x412803
mov al, byte [esp + 0x174]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x9c], 0xe0
mov byte [esp + 0x9d], 0xf
mov byte [esp + 0x9e], 0x54
mov byte [esp + 0x9f], 0xf1
mov byte [esp + 0xa0], 0x5e
mov byte [esp + 0xa1], 0xf3
mov byte [esp + 0xa2], 0x58
mov byte [esp + 0xa3], 0xf5
mov byte [esp + 0xa4], 0xf6
mov byte [esp + 0xa5], 0xf7
xor eax, eax
cmp eax, 0xa
jae 0x4127e7
movzx edx, byte [esp + eax + 0x9c]
mov ecx, eax
add ecx, 0xaa64a7fe
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
mov edi, ecx
add edi, 0xacdac00f
mov edx, edi
and edx, 1
and ecx, 1
xor ecx, 1
or edx, ecx
or edi, 1
add edx, edi
mov byte [esp + eax + 0x9c], dl
add eax, 1
jmp 0x4127a2
lea eax, [esp + 0x9c]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414210
jmp 0x4128b8
cmp eax, 2
jne 0x4128b8
mov al, byte [esp + 0x170]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x92], 0xcd
mov byte [esp + 0x93], 0x14
mov byte [esp + 0x94], 0x85
mov byte [esp + 0x95], 0x16
mov byte [esp + 0x96], 0x84
mov byte [esp + 0x97], 8
mov byte [esp + 0x98], 0xd8
mov byte [esp + 0x99], 0xa
mov byte [esp + 0x9a], 0xb
mov byte [esp + 0x9b], 0xc
xor eax, eax
cmp eax, 0xa
jae 0x41289f
movzx edi, byte [esp + eax + 0x92]
mov ecx, 0xb4
sub ecx, eax
or ecx, edi
mov edx, 0xb4
sub edx, eax
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0xa8
mov byte [esp + eax + 0x92], dl
add eax, 1
jmp 0x41286c
lea eax, [esp + 0x92]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00414210
jmp 0x4128b8
xor eax, eax
jmp 0x4128bc
cmp eax, 0
sete cl
test cl, 1
jne 0x4128c9
jmp 0x4128cb
xor eax, eax
cmp eax, 0
jne 0x413e2a
lea eax, [esp + 0x244]
xor ecx, ecx
mov ecx, dword [esp + 0x28]
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.0043a290
mov edx, eax
cmp edx, 0
setge al
test al, 1
jne 0x412926
jmp 0x412a8f
mov eax, dword [esp + 0x248]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x244]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043a830
mov edx, eax
mov eax, dword [esp + 0x244]
mov dword [esp + 0x270], eax
mov al, byte [esp + 0x1c0]
mov byte [esp + 0x220], al
mov byte [esp + 0x5c], 0x80
mov byte [esp + 0x5d], 0x8f
mov byte [esp + 0x5e], 0x8e
mov byte [esp + 0x5f], 0x8d
movzx eax, byte [esp + 0x5c]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5c], al
movzx eax, byte [esp + 0x5d]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5d], al
movzx eax, byte [esp + 0x5e]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5e], al
movzx eax, byte [esp + 0x5f]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5f], al
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x268], eax
xor edi, edi
cmp edi, dword [0x446b30]
jb 0x412a17
jmp 0x412a8d
mov eax, dword [0x446b34]
cmp dword [eax + edi*8], 0xb430e561
sete cl
mov byte [esp + 0x75], cl
test cl, 1
mov dword [esp + 0x250], edi
jne 0x412a38
jmp 0x412a78
mov eax, dword [eax + edi*8 + 4]
cmp eax, dword [esp + 0x268]
je 0x412a78
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x270]
mov dword [esp + 0xc], eax
mov dword [esp + 0x254], edx
call fcn.004383c0
mov edx, dword [esp + 0x254]
test byte [esp + 0x75], 1
je 0x412a81
jmp 0x412a8d
mov edi, dword [esp + 0x250]
add edi, 1
jmp 0x412a0d
jmp 0x412a8f
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov edi, edx
call fcn.00436dd0
mov dword [esp + 0x64], 0
cmp edi, 0
jge 0x412ac7
mov dword [esp + 0x38], 0
mov eax, 4
mov ecx, dword [esp + 0xb0]
mov edi, dword [esp + 0x28]
jmp 0x413275
mov ecx, dword [esp + 0xb0]
cmp ecx, 1
sete al
mov edi, dword [esp + 0x28]
test al, 1
jne 0x412ae1
jmp 0x412e68
mov al, byte [esp + 0x16c]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x7d], 0x8a
mov byte [esp + 0x7e], 0x83
mov byte [esp + 0x7f], 0x2e
xor eax, eax
cmp eax, 3
jae 0x412b3f
movzx edi, byte [esp + eax + 0x7d]
mov ecx, 0xb3
sub ecx, eax
mov edx, 0xb3
sub edx, eax
and ecx, edx
or ecx, edi
mov edx, 0xb3
sub edx, eax
mov ebx, 0xb3
sub ebx, eax
or edx, ebx
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0xa0
mov byte [esp + eax + 0x7d], dl
add eax, 1
jmp 0x412b00
lea eax, [esp + 0x7d]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x150], eax
mov al, byte [esp + 0x168]
mov byte [esp + 0x200], al
mov byte [esp + 0x7a], 0x2e
mov byte [esp + 0x7b], 0x12
mov byte [esp + 0x7c], 0x81
xor eax, eax
mov edi, dword [esp + 0x28]
cmp eax, 3
jae 0x412b99
mov cl, byte [esp + eax + 0x7a]
mov dl, al
add dl, 0x37
xor dl, cl
add dl, 0x48
mov byte [esp + eax + 0x7a], dl
add eax, 1
jmp 0x412b7d
lea eax, [esp + 0x7a]
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401890
mov dword [esp + 0x14c], eax
mov dword [esp], edi
call fcn.00414260
mov ebx, eax
cmp dword [esp + 0x150], 0
setne al
mov dword [esp + 0x148], 0
mov byte [esp + 0x78], al
test al, 1
jne 0x412bde
jmp 0x412c00
mov eax, dword [esp + 0x150]
mov dword [esp], eax
call fcn.004084f0
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov dword [esp + 0x148], eax
jmp 0x412c00
cmp dword [esp + 0x14c], 0
setne cl
xor eax, eax
mov byte [esp + 0x77], cl
test cl, 1
jne 0x412c18
jmp 0x412c34
mov eax, dword [esp + 0x14c]
mov dword [esp], eax
call fcn.004084f0
add eax, 0x3db136e6
add eax, 1
sub eax, 0x3db136e6
add ebx, 9
add ebx, 0xeeb1ce1d
add ebx, dword [esp + 0x148]
sub ebx, 0xeeb1ce1d
mov ecx, ebx
and ecx, eax
shl ecx, 1
mov dword [esp + 0x280], eax
xor ebx, eax
add ebx, ecx
xor ecx, ecx
sub ecx, ebx
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412c7c
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x164]
mov byte [esp + 0x204], al
mov byte [esp + 0xc6], 0x4e
mov byte [esp + 0xc7], 0xfd
mov byte [esp + 0xc8], 0x4b
mov byte [esp + 0xc9], 0xff
mov byte [esp + 0xca], 0x6e
mov byte [esp + 0xcb], 0xc1
mov byte [esp + 0xcc], 0x66
mov byte [esp + 0xcd], 0xc3
mov byte [esp + 0xce], 0x68
mov byte [esp + 0xcf], 0xc5
mov byte [esp + 0xd0], 0x6a
mov byte [esp + 0xd1], 0xc7
mov byte [esp + 0xd2], 0x3b
mov byte [esp + 0xd3], 0xc9
mov byte [esp + 0xd4], 0x38
mov byte [esp + 0xd5], 0xcb
mov byte [esp + 0xd6], 0xcc
mov byte [esp + 0xd7], 0xcd
xor eax, eax
cmp eax, 0x12
jae 0x412d86
mov cl, byte [esp + eax + 0xc6]
mov byte [esp + 0x70], cl
movzx ebx, cl
mov ecx, eax
add ecx, 0xef32201c
mov edi, ecx
and edi, ebx
mov ebx, edi
and ebx, 2
xor ebx, 2
mov edx, edi
and edx, 0xfd
imul edx, ebx
mov ebx, edi
and ebx, 2
or edi, 2
imul edi, ebx
add edi, edx
add edi, 0x2c
sub ecx, edi
mov edi, dword [esp + 0x28]
add cl, 0x2c
add cl, byte [esp + 0x70]
add cl, 0x20
mov byte [esp + eax + 0xc6], cl
add eax, 1
jmp 0x412d28
lea eax, [esp + 0xc6]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409d90
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], edi
call fcn.00409d90
mov ecx, edi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
je 0x412ddb
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call fcn.004082b0
jmp 0x412ddb
test byte [esp + 0x78], 1
jne 0x412de8
mov ebx, dword [esp + 0x68]
jmp 0x412e24
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x148]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a9b0
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x68]
test byte [esp + 0x77], 1
jne 0x412e2d
jmp 0x412e5f
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x280]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a9b0
xor edi, edi
xor ecx, ecx
jmp 0x413273
cmp ecx, 2
sete al
mov dword [esp + 0x38], 0
test al, 1
jne 0x412e7f
jmp 0x413273
mov dword [esp], edi
call fcn.00414260
add eax, 0x1d
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412ea3
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x208], al
mov byte [esp + 0x3c], 2
mov byte [esp + 0x3d], 0x21
mov byte [esp + 0x3e], 0x22
mov byte [esp + 0x3f], 0x23
movzx eax, byte [esp + 0x3c]
xor eax, 0x248a7e66
mov ecx, eax
and ecx, 0x258dfc46
shl ecx, 1
mov edx, 0x258dfc46
sub edx, ecx
add edx, eax
mov eax, edx
add eax, 0xf7c3eeff
mov edi, edx
add edi, 0xf7c3ef00
mov ecx, 0x83c1100
sub ecx, edx
or ecx, 1
add ecx, edi
or eax, 1
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
mov byte [esp + 0x3c], al
movzx eax, byte [esp + 0x3d]
xor eax, 0x248a7e66
mov ecx, eax
and ecx, 0x258dfc47
shl ecx, 1
mov edx, 0x258dfc47
sub edx, ecx
add edx, eax
mov eax, edx
add eax, 0xf7c3eeff
mov edi, edx
add edi, 0xf7c3ef00
mov ecx, 0x83c1100
sub ecx, edx
or ecx, 1
add ecx, edi
or eax, 1
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
mov byte [esp + 0x3d], al
movzx eax, byte [esp + 0x3e]
xor eax, 0x248a7e66
mov ecx, eax
and ecx, 0x258dfc44
shl ecx, 1
mov edx, 0x258dfc44
sub edx, ecx
add edx, eax
mov eax, edx
add eax, 0xf7c3eeff
mov edi, edx
add edi, 0xf7c3ef00
mov ecx, 0x83c1100
sub ecx, edx
or ecx, 1
add ecx, edi
or eax, 1
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
mov byte [esp + 0x3e], al
movzx eax, byte [esp + 0x3f]
xor eax, 0x248a7e66
mov ecx, eax
and ecx, 0x258dfc45
shl ecx, 1
mov edx, 0x258dfc45
sub edx, ecx
add edx, eax
mov eax, edx
add eax, 0xf7c3eeff
mov edi, edx
add edi, 0xf7c3ef00
mov ecx, 0x83c1100
sub ecx, edx
or ecx, 1
add ecx, edi
or eax, 1
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
mov byte [esp + 0x3f], al
mov al, byte [esp + 0x15c]
mov byte [esp + 0x20c], al
mov byte [esp + 0x10a], 0x9e
mov byte [esp + 0x10b], 0xf
mov byte [esp + 0x10c], 0x5f
mov byte [esp + 0x10d], 0xf1
mov byte [esp + 0x10e], 0x65
mov byte [esp + 0x10f], 0xf3
mov byte [esp + 0x110], 0x51
mov byte [esp + 0x111], 0xf5
mov byte [esp + 0x112], 0x64
mov byte [esp + 0x113], 0xf7
mov byte [esp + 0x114], 0x6b
mov byte [esp + 0x115], 0xf9
mov byte [esp + 0x116], 0x52
mov byte [esp + 0x117], 0xfb
mov byte [esp + 0x118], 0x59
mov byte [esp + 0x119], 0xfd
mov byte [esp + 0x11a], 0x52
mov byte [esp + 0x11b], 0xff
mov byte [esp + 0x11c], 0x4c
mov byte [esp + 0x11d], 0xe1
mov byte [esp + 0x11e], 2
mov byte [esp + 0x11f], 0xe3
mov byte [esp + 0x120], 9
mov byte [esp + 0x121], 0xe5
mov byte [esp + 0x122], 0x43
mov byte [esp + 0x123], 0xe7
mov byte [esp + 0x124], 0x70
mov byte [esp + 0x125], 0xe9
mov byte [esp + 0x126], 0x4f
mov byte [esp + 0x127], 0xeb
mov byte [esp + 0x128], 0x4f
mov byte [esp + 0x129], 0xed
mov byte [esp + 0x12a], 0xe
mov byte [esp + 0x12b], 0xef
mov byte [esp + 0x12c], 0x72
mov byte [esp + 0x12d], 0xd1
mov byte [esp + 0x12e], 0x4b
mov byte [esp + 0x12f], 0xd3
mov byte [esp + 0x130], 0x44
mov byte [esp + 0x131], 0xd5
mov byte [esp + 0x132], 0x77
mov byte [esp + 0x133], 0xd7
mov byte [esp + 0x134], 0x4b
mov byte [esp + 0x135], 0xd9
mov byte [esp + 0x136], 0x49
mov byte [esp + 0x137], 0xdb
mov byte [esp + 0x138], 0x3c
mov byte [esp + 0x139], 0xdd
mov byte [esp + 0x13a], 0x33
mov byte [esp + 0x13b], 0xdf
mov byte [esp + 0x13c], 0x66
mov byte [esp + 0x13d], 0xc1
mov byte [esp + 0x13e], 0x22
mov byte [esp + 0x13f], 0xc3
mov byte [esp + 0x140], 0x26
mov byte [esp + 0x141], 0xc5
mov byte [esp + 0x142], 0xc6
mov byte [esp + 0x143], 0xc7
xor eax, eax
cmp eax, 0x3a
jae 0x413233
movzx ecx, byte [esp + eax + 0x10a]
mov edx, eax
add edx, 0xa7cba8fe
xor edx, ecx
mov ecx, edx
and ecx, 0xd
mov ebx, edx
and ebx, 0xd
mov edi, edx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, edx
and ebx, 2
or ecx, 2
imul ecx, ebx
add ecx, edi
xor edx, 0xf
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x10a], cl
mov ecx, eax
xor ecx, 0xac737449
shl eax, 1
and eax, 0x6c
sub eax, ecx
add eax, 0xac73744a
jmp 0x4131d5
lea eax, [esp + 0x10a]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409d90
mov dword [esp], eax
mov edi, dword [esp + 0x28]
mov dword [esp + 4], edi
call fcn.00409d90
lea ecx, [esp + 0x3c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d90
mov ecx, 2
mov ebx, dword [esp + 0x68]
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x41357e
jmp 0x413e2a
xor edi, 1
mov ecx, dword [esp + 0xb0]
mov eax, ecx
xor eax, 2
or edi, eax
sete al
mov dword [esp + 0x38], 0
test al, 1
mov edi, 0
jne 0x4132b2
jmp 0x41357e
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00413e40
mov ebx, eax
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 0x4132e4
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov edi, eax
mov eax, dword [esp + 0x64]
xor ecx, ecx
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a9b0
mov eax, dword [esp + 0x248]
mov ecx, eax
and ecx, 0x18
shl ecx, 1
xor eax, 0x18
add 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 0x413340
mov ecx, eax
mov dword [esp], ecx
call fcn.004082a0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0x158]
mov byte [esp + 0x210], al
mov byte [esp + 0xd8], 0x74
mov byte [esp + 0xd9], 0xc5
mov byte [esp + 0xda], 0x69
mov byte [esp + 0xdb], 0xc7
mov byte [esp + 0xdc], 0x7f
mov byte [esp + 0xdd], 0xc9
mov byte [esp + 0xde], 0x6f
mov byte [esp + 0xdf], 0xcb
mov byte [esp + 0xe0], 0x7e
mov byte [esp + 0xe1], 0xcd
mov byte [esp + 0xe2], 0x7d
mov byte [esp + 0xe3], 0xcf
mov byte [esp + 0xe4], pe_nt_image_headers32
mov byte [esp + 0xe5], 0xd1
mov byte [esp + 0xe6], 0x77
mov byte [esp + 0xe7], 0xd3
mov byte [esp + 0xe8], pe_nt_image_headers32
mov byte [esp + 0xe9], 0xd5
mov byte [esp + 0xea], 0x7a
mov byte [esp + 0xeb], 0xd7
mov byte [esp + 0xec], 0xb8
mov byte [esp + 0xed], 0xd9
mov byte [esp + 0xee], 0xb7
mov byte [esp + 0xef], 0xdb
mov byte [esp + 0xf0], 0x79
mov byte [esp + 0xf1], 0xdd
mov byte [esp + 0xf2], 0x66
mov byte [esp + 0xf3], 0xdf
mov byte [esp + 0xf4], 0x85
mov byte [esp + 0xf5], 0x21
mov byte [esp + 0xf6], 0x81
mov byte [esp + 0xf7], 0x23
mov byte [esp + 0xf8], 0x44
mov byte [esp + 0xf9], 0x25
mov byte [esp + 0xfa], 0x84
mov byte [esp + 0xfb], 0x27
mov byte [esp + 0xfc], 0x91
mov byte [esp + 0xfd], 0x29
mov byte [esp + 0xfe], 0x9a
mov byte [esp + 0xff], 0x2b
mov byte [esp + 0x100], 0x8d
mov byte [esp + 0x101], 0x2d
mov byte [esp + 0x102], 0x9d
mov byte [esp + 0x103], 0x2f
mov byte [esp + 0x104], 0x83
mov byte [esp + 0x105], 0x31
mov byte [esp + 0x106], 0x52
mov byte [esp + 0x107], 0x33
mov byte [esp + 0x108], 0x34
mov byte [esp + 0x109], 0x35
xor eax, eax
cmp eax, 0x32
jae 0x413542
movzx edx, byte [esp + eax + 0xd8]
mov dword [esp + 0x27c], edi
mov edi, 0x1b
sub edi, eax
mov ecx, 0x1b
sub ecx, eax
and ecx, edi
or ecx, edx
mov edi, eax
add edi, 0xe4
mov ebx, eax
add ebx, 0xe4
and edi, ebx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edi, dword [esp + 0x27c]
mov dl, 0xdf
sub dl, cl
mov byte [esp + eax + 0xd8], dl
add eax, 1
jmp 0x4134ec
lea eax, [esp + 0xd8]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409d90
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409d90
mov ebx, dword [esp + 0x68]
mov dword [esp], edi
call fcn.004082b0
jmp 0x413573
jmp 0x413575
xor edi, edi
mov ecx, 2
jmp 0x41357e
test ecx, ecx
je 0x41359f
jmp 0x413584
mov eax, ecx
sub eax, 1
je 0x413787
jmp 0x413591
sub ecx, 2
je 0x413b0b
jmp 0x413df5
test byte [esp + 0x79], 1
jne 0x4135ab
jmp 0x413787
lea eax, [esp + 0x308]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.00408460
mov dword [esp + 0x308], 0x44
mov eax, dword [0x445b24]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00439be0
cmp eax, 0
setne cl
test cl, 1
jne 0x4135f9
jmp 0x4135f9
test cl, 1
jne 0x413600
xor eax, eax
xor ecx, ecx
lea ecx, [esp + 0x308]
lea edx, [esp + 0x2b4]
mov dword [esp + 0x28], edi
mov dword [esp], edi
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 0x41377e
mov edi, dword [esp + 0x2b4]
mov al, byte [esp + 0x1bc]
mov byte [esp + 0x224], al
mov byte [esp + 0x58], 0x80
mov byte [esp + 0x59], 0x8f
mov byte [esp + 0x5a], 0x8e
mov byte [esp + 0x5b], 0x8d
movzx eax, byte [esp + 0x58]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x58], al
movzx eax, byte [esp + 0x59]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x59], al
movzx eax, byte [esp + 0x5a]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5a], al
movzx eax, byte [esp + 0x5b]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x5b], al
mov ecx, dword [esp + 0x58]
xor ebx, ebx
cmp ebx, dword [0x446b30]
jb 0x41371a
jmp 0x413776
mov eax, dword [0x446b34]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
mov byte [esp + 0x71], dl
test dl, 1
jne 0x413734
jmp 0x413768
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x413768
mov dword [esp + 0x258], ecx
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
call fcn.004383c0
mov ecx, dword [esp + 0x258]
test byte [esp + 0x71], 1
je 0x413771
jmp 0x413776
add ebx, 1
jmp 0x413710
mov ebx, dword [esp + 0x68]
jmp 0x41377c
jmp 0x41377e
mov edi, dword [esp + 0x28]
jmp 0x413df5
mov eax, dword [0x445b24]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.00439be0
cmp eax, 0
setne cl
test cl, 1
jne 0x4137a9
jmp 0x4137a9
test cl, 1
jne 0x4137b0
xor eax, eax
mov ecx, dword [esp + 0x64]
xor edx, edx
lea edx, [0x4202a0]
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
setne cl
test cl, 1
jne 0x4137f8
jmp 0x413b06
mov dword [esp + 0x240], eax
mov al, byte [esp + 0x154]
mov byte [esp + 0x214], al
mov byte [esp + 0x8a], 0xbe
mov byte [esp + 0x8b], 0xe5
mov byte [esp + 0x8c], 0x7c
mov byte [esp + 0x8d], 0x9d
mov byte [esp + 0x8e], 0xbd
mov byte [esp + 0x8f], 0xbc
mov byte [esp + 0x90], 0xbb
mov byte [esp + 0x91], 0xba
xor eax, eax
cmp eax, 8
jae 0x4138a8
movzx edx, byte [esp + eax + 0x8a]
mov ecx, eax
add ecx, 0xc5312ce
mov ebx, edi
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
add ecx, 0x248cace3
mov edi, ecx
shl edi, 1
and edi, 0x58
mov edx, ecx
xor edx, 0xac
add edx, edi
mov edi, ecx
shl edi, 1
and edi, 2
shl ecx, 1
and ecx, 2
add edx, 1
sub edx, ecx
add edx, edi
mov edi, ebx
mov byte [esp + eax + 0x8a], dl
add eax, 1
jmp 0x41384f
mov eax, dword [esp + 0x8a]
mov ecx, dword [esp + 0x8e]
mov dword [esp + 0x29c], ecx
mov dword [esp + 0x298], eax
mov al, byte [esp + 0x218]
mov byte [esp + 0x21c], al
mov byte [esp + 0x60], 0x80
mov byte [esp + 0x61], 0x8f
mov byte [esp + 0x62], 0x8e
mov byte [esp + 0x63], 0x8d
movzx eax, byte [esp + 0x60]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x60], al
movzx eax, byte [esp + 0x61]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x61], al
movzx eax, byte [esp + 0x62]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x62], al
movzx eax, byte [esp + 0x63]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x63], al
mov ecx, dword [esp + 0x60]
xor ebx, ebx
cmp ebx, dword [0x446b30]
jb 0x413972
jmp 0x4139ef
mov eax, dword [0x446b34]
cmp dword [eax + ebx*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x413988
jmp 0x4139e0
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x4139e0
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x446b38]
mov byte [esp + 0x76], dl
xor edx, edx
lea edx, [esp + 0x298]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x240]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.004383c0
mov dl, byte [esp + 0x76]
mov ecx, dword [esp + 0x26c]
test dl, 1
je 0x4139e7
jmp 0x4139ef
add ebx, 1
jmp 0x413968
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x228], al
mov byte [esp + 0x54], 0x80
mov byte [esp + 0x55], 0x8f
mov byte [esp + 0x56], 0x8e
mov byte [esp + 0x57], 0x8d
movzx eax, byte [esp + 0x54]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x54], al
movzx eax, byte [esp + 0x55]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x55], al
movzx eax, byte [esp + 0x56]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x56], al
movzx eax, byte [esp + 0x57]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x57], al
mov ecx, dword [esp + 0x54]
xor ebx, ebx
cmp ebx, dword [0x446b30]
jb 0x413a9d
jmp 0x413b02
mov eax, dword [0x446b34]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
test dl, 1
jne 0x413ab3
jmp 0x413af6
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x413af6
mov dword [esp + 0x25c], ecx
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x240]
mov dword [esp + 0xc], eax
mov byte [esp + 0x72], dl
call fcn.004383c0
mov dl, byte [esp + 0x72]
mov ecx, dword [esp + 0x25c]
test dl, 1
je 0x413afd
jmp 0x413b02
add ebx, 1
jmp 0x413a93
mov ebx, dword [esp + 0x68]
jmp 0x413df5
lea eax, [esp + 0x2c4]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.00408460
mov dword [esp + 0x2c4], 0x44
mov eax, dword [0x445b24]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00439be0
cmp eax, 0
setne cl
test cl, 1
jne 0x413b59
jmp 0x413b59
mov dword [esp + 0x28], edi
test cl, 1
jne 0x413b64
xor eax, eax
xor ecx, ecx
lea edi, [esp + 0x2c4]
lea edx, [esp + 0x2a4]
mov dword [esp], 0
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
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], edi
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x413def
mov edi, dword [esp + 0x2a8]
mov al, byte [esp + 0x1b4]
mov byte [esp + 0x22c], al
mov byte [esp + 0x50], 0x80
mov byte [esp + 0x51], 0x8f
mov byte [esp + 0x52], 0x8e
mov byte [esp + 0x53], 0x8d
movzx eax, byte [esp + 0x50]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x50], al
movzx eax, byte [esp + 0x51]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x51], al
movzx eax, byte [esp + 0x52]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x52], al
movzx eax, byte [esp + 0x53]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x53], al
mov ecx, dword [esp + 0x50]
xor ebx, ebx
cmp ebx, dword [0x446b30]
jb 0x413c7e
jmp 0x413cda
mov eax, dword [0x446b34]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
mov byte [esp + 0x74], dl
test dl, 1
jne 0x413c98
jmp 0x413ccc
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x413ccc
mov dword [esp + 0x264], ecx
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
call fcn.004383c0
mov ecx, dword [esp + 0x264]
test byte [esp + 0x74], 1
je 0x413cd5
jmp 0x413cda
add ebx, 1
jmp 0x413c74
mov edi, dword [esp + 0x2a4]
mov al, byte [esp + 0x1b0]
mov byte [esp + 0x230], al
mov byte [esp + 0x4c], 0x80
mov byte [esp + 0x4d], 0x8f
mov byte [esp + 0x4e], 0x8e
mov byte [esp + 0x4f], 0x8d
movzx eax, byte [esp + 0x4c]
xor eax, 0xdf2d6837
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x4c], al
movzx eax, byte [esp + 0x4d]
xor eax, 0xdf2d6838
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x4d], al
movzx eax, byte [esp + 0x4e]
xor eax, 0xdf2d6839
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x4e], al
movzx eax, byte [esp + 0x4f]
xor eax, 0xdf2d683a
add eax, 0x694be47
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov byte [esp + 0x4f], al
mov ecx, dword [esp + 0x4c]
xor ebx, ebx
cmp ebx, dword [0x446b30]
jb 0x413d8f
jmp 0x413deb
mov eax, dword [0x446b34]
cmp dword [eax + ebx*8], 0xb430e561
sete dl
mov byte [esp + 0x73], dl
test dl, 1
jne 0x413da9
jmp 0x413ddd
mov eax, dword [eax + ebx*8 + 4]
cmp eax, ecx
je 0x413ddd
mov dword [esp + 0x260], ecx
mov ecx, dword [0x446b38]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov dword [esp + 0xc], edi
call fcn.004383c0
mov ecx, dword [esp + 0x260]
test byte [esp + 0x73], 1
je 0x413de6
jmp 0x413deb
add ebx, 1
jmp 0x413d85
mov ebx, dword [esp + 0x68]
mov edi, dword [esp + 0x28]
jmp 0x413df5
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00436dd0
cmp edi, 0
je 0x413e0e
mov dword [esp], edi
call fcn.004082b0
cmp dword [esp + 0x38], 0
sete al
test al, 1
jne 0x413e28
jmp 0x413e1c
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.004082b0
jmp 0x413e2a
add ebx, 1
jmp 0x4119ec
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret