Function at 0x4118d0
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, 0x818
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b60
mov esi, eax
cmp esi, 0
jne 0x4118f8
xor eax, eax
jmp 0x413596
xor edi, edi
jmp 0x4118fc
mov dword [esp], esi
call fcn.00401f30
cmp edi, eax
setb al
test al, 1
jne 0x411916
jmp 0x41190f
mov al, 1
jmp 0x413596
mov dword [esp], esi
mov dword [esp + 4], edi
call fcn.00401f40
mov ebx, eax
mov al, byte [esp + 0xf4]
mov byte [esp + 0x10c], al
mov word [esp + 0x42], 0xe54a
mov ax, word [esp + 0x42]
xor ax, 0x72e7
add ax, 0x68c8
mov word [esp + 0x42], ax
lea eax, [esp + 0x42]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401e30
cmp eax, 0
je 0x411a47
mov al, byte [esp + 0xf0]
mov byte [esp + 0x110], al
mov word [esp + 0x74], 0xb03a
mov word [esp + 0x76], 0x4b9d
xor eax, eax
mov dword [esp + 0x48], ebx
cmp eax, 2
jae 0x4119cb
movzx edx, word [esp + eax*2 + 0x74]
mov ecx, eax
add ecx, 0x9889087c
mov ebx, ecx
and ebx, edx
shl ebx, 1
add ecx, edx
mov edx, ecx
sub edx, ebx
mov ebx, dword [esp + 0x48]
add edx, 0xbc1f
and ecx, 1
xor ecx, 1
or edx, 1
add ecx, edx
mov word [esp + eax*2 + 0x74], cx
add eax, 1
jmp 0x41198e
lea eax, [esp + 0x74]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e30
cmp eax, 0
je 0x411a47
mov al, byte [esp + 0xec]
mov byte [esp + 0x114], al
mov word [esp + 0x40], 0x651e
movzx eax, word [esp + 0x40]
xor eax, 0x702bd663
mov ecx, eax
shl ecx, 1
and ecx, 0x99ce
xor eax, 0x4ce7
add eax, ecx
add ax, 1
mov word [esp + 0x40], ax
lea eax, [esp + 0x40]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e30
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x411a47
jmp 0x411a4c
jmp 0x41358c
mov dword [esp + 0x2c], edi
mov al, byte [esp + 0xe8]
mov byte [esp + 0x118], al
mov word [esp + 0x3e], 0x510e
movzx ecx, word [esp + 0x3e]
mov eax, ecx
or eax, 0x4d01bd83
xor ecx, 0xffffffff
or ecx, 0x427c
and eax, ecx
add eax, 0x97f213e7
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
mov word [esp + 0x3e], ax
lea eax, [esp + 0x3e]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x2a8], eax
mov al, byte [esp + 0xe4]
mov byte [esp + 0x11c], al
mov word [esp + 0x70], 0x53b1
mov word [esp + 0x72], 0xe708
xor eax, eax
cmp eax, 2
jae 0x411b22
movzx ecx, word [esp + eax*2 + 0x70]
mov edx, eax
add edx, 0xbc52c46f
mov ebx, edx
or ebx, ecx
and edx, ecx
add ebx, 0x88b112eb
sub ebx, edx
mov edx, ebx
add edx, 0x774eed15
mov ecx, edx
and ecx, 0xdc87
mov edi, 0x12ea
sub edi, ebx
mov ebx, dword [esp + 0x48]
and edi, 0x2378
and edx, 0x2378
xor edx, 0x2378
or edx, edi
sub ecx, edx
mov word [esp + eax*2 + 0x70], cx
add eax, 1
jmp 0x411ac7
lea eax, [esp + 0x70]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00401970
fnstcw word [esp + 0x4e]
movzx eax, word [esp + 0x4e]
or eax, 0xc00
mov word [esp + 0x180], ax
fldcw word [esp + 0x180]
fistp dword [esp + 0x2b8]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x2b8]
mov dword [esp + 0x54], eax
mov al, byte [esp + 0xe0]
mov byte [esp + 0x120], al
mov word [esp + 0x3c], 0x30ed
movzx eax, word [esp + 0x3c]
xor eax, 0x2248
add eax, 0xffffedc0
mov word [esp + 0x3c], ax
lea eax, [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.00401970
fnstcw word [esp + 0x4c]
movzx eax, word [esp + 0x4c]
or eax, 0xc00
mov word [esp + 0x17e], ax
fldcw word [esp + 0x17e]
fistp dword [esp + 0x2bc]
fldcw word [esp + 0x4c]
mov ebx, dword [esp + 0x2bc]
lea eax, [esp + 0x414]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x2a8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aab0
lea eax, [esp + 0x414]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x1c0]
xor edi, edi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040b1d0
test al, 1
jne 0x411c32
mov edi, dword [esp + 0x2c]
jmp 0x41358c
cmp ebx, 0
sete al
mov byte [esp + 0x47], al
test al, 1
mov edi, dword [esp + 0x2c]
jne 0x411c49
jmp 0x412bf4
mov al, byte [esp + 0xdc]
mov byte [esp + 0x124], al
mov word [esp + 0x3a], 0x5e54
mov ax, word [esp + 0x3a]
movzx ecx, ax
mov edx, ecx
or edx, 0x701d673b
and ecx, 0x673b
xor ecx, edx
and ecx, 0x8fe298c4
and ecx, 0xfffd
shl ecx, 1
mov edx, 0x8fe298c4
sub edx, ecx
add dx, ax
add dx, 0x39e0
mov word [esp + 0x3a], dx
mov ecx, dword [esp + 0x48]
lea eax, [esp + 0x3a]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
cmp eax, 0
setne cl
jmp 0x411cb4
test cl, 1
jne 0x411cbe
jmp 0x411ee2
mov dword [esp + 0x268], eax
mov dword [esp], eax
call fcn.004135d0
xor ecx, ecx
mov dword [esp + 0x1b0], eax
sub ecx, eax
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mov dword [esp + 0x25c], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411cfc
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov ebx, eax
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x25c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x268]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aab0
xor eax, eax
lea eax, [esp + 0xd8]
mov dword [esp], 0
mov dword [esp + 0x50], ebx
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x1b0]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x446180]
sub esp, 0x18
mov dword [esp + 0x26c], eax
jmp 0x411d77
mov al, byte [esp + 0xd4]
mov byte [esp + 0x128], al
mov word [esp + 0x6c], 0xc66b
mov word [esp + 0x6e], 0x649
xor ecx, ecx
cmp ecx, 2
jae 0x411dd8
movzx eax, word [esp + ecx*2 + 0x6c]
mov edx, 0x89f7
sub edx, ecx
or edx, eax
mov ebx, 0x89f7
sub ebx, ecx
mov edi, 0x89f7
sub edi, ecx
or ebx, edi
mov edi, dword [esp + 0x2c]
and ebx, eax
xor edx, 0xffffffff
or ebx, edx
add bx, 0x4fc0
mov word [esp + ecx*2 + 0x6c], bx
mov eax, ecx
shl eax, 1
or ecx, eax
xor ecx, 1
jmp 0x411d95
mov eax, dword [esp + 0x6c]
cmp dword [esp + 0x26c], eax
jne 0x411e0d
jmp 0x411de7
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00408140
jmp 0x411df5
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
xor ebx, ebx
mov eax, 4
jmp 0x411ece
mov eax, dword [esp + 0xd8]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411e2a
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov ecx, dword [0x446180]
mov dword [esp + 0x254], ecx
mov ecx, dword [esp + 0xd8]
xor edx, edx
lea edx, [esp + 0xd8]
mov dword [esp], 0
mov ebx, dword [esp + 0x50]
mov dword [esp + 4], ebx
mov ebx, eax
mov eax, dword [esp + 0x1b0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
call dword [esp + 0x254]
sub esp, 0x18
cmp eax, 0
setge al
test al, 1
jne 0x411ebc
jmp 0x411e8d
jmp 0x411e8f
mov dword [esp], ebx
call fcn.00408140
jmp 0x411e99
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00408140
jmp 0x411ea7
jmp 0x411ea9
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
mov eax, 4
jmp 0x411ece
jmp 0x411ebe
mov eax, dword [esp + 0x50]
mov dword [esp], eax
call fcn.00408140
xor eax, eax
jmp 0x411ece
cmp eax, 0
sete cl
test cl, 1
jne 0x412474
jmp 0x412476
call fcn.004088e0
and eax, 0xf
add eax, 0xc9c1d8e
sub eax, 0xc9c1d7e
xor edx, edx
lea edi, [esp + 0x3d4]
cmp edx, eax
setb cl
test cl, 1
jne 0x4120da
jmp 0x411f0d
mov word [edi], 0
mov al, byte [esp + 0xcc]
mov byte [esp + 0x130], al
mov word [esp + 0x1c6], 0x84db
mov word [esp + 0x1c8], 0x848b
mov word [esp + 0x1ca], 0x84e5
mov word [esp + 0x1cc], 0x84ec
mov word [esp + 0x1ce], 0x8492
mov word [esp + 0x1d0], 0x84c6
mov word [esp + 0x1d2], 0x8498
mov word [esp + 0x1d4], 0x8425
xor eax, eax
jmp 0x411f74
cmp eax, 8
jae 0x411fc2
movzx edx, word [esp + eax*2 + 0x1c6]
mov ecx, eax
add ecx, 0x364e
and ecx, edx
mov edi, 0x4417c9b1
sub edi, eax
xor edx, 0xffffffff
and edi, edx
or ecx, edi
add ecx, 1
mov edx, ecx
shl edx, 1
and edx, 0x64e2
xor ecx, 0x4d8e
add ecx, 1
sub ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x1c6], cx
add eax, 1
jmp 0x411f74
lea eax, [esp + 0x374]
lea ecx, [esp + 0x1c6]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409e30
lea ecx, [esp + 0x3d4]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409e30
lea ecx, [esp + 0x374]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x374]
lea ecx, [esp + 0xc8]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2ac], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x446180]
sub esp, 0x18
mov dword [esp + 0x264], eax
mov al, byte [esp + 0xc4]
mov byte [esp + 0x134], al
mov word [esp + 0x64], 0x2461
mov word [esp + 0x66], 0xe443
xor ecx, ecx
cmp ecx, 2
jae 0x4120c0
movzx eax, word [esp + ecx*2 + 0x64]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x90]
add ecx, 0x8dbab2d2
mov ebx, 0x4d2d
sub ebx, dword [esp + 0x90]
and ebx, eax
mov edx, ecx
xor edx, eax
add edx, eax
mov edi, eax
add edi, 1
xor eax, 0xffffffff
or ecx, eax
add ecx, edi
add edx, 0xc2ab
add ebx, ecx
mov ecx, dword [esp + 0x90]
sub edx, ebx
add dx, 0xa6c5
mov word [esp + ecx*2 + 0x64], dx
add ecx, 1
jmp 0x412062
mov eax, dword [esp + 0x64]
cmp dword [esp + 0x264], eax
mov edi, dword [esp + 0x2c]
jne 0x412196
jmp 0x4121ae
mov dword [esp + 0x290], edx
mov dword [esp + 0x294], eax
call fcn.004088e0
mov dword [esp + 0x260], eax
mov al, byte [esp + 0xd0]
mov byte [esp + 0x12c], al
mov word [esp + 0x68], 0x603b
mov word [esp + 0x6a], 0x6050
xor ecx, ecx
cmp ecx, 2
jae 0x412159
movzx eax, word [esp + ecx*2 + 0x68]
mov edx, 0x4498
sub edx, ecx
or edx, eax
mov ebx, 0x4498
sub ebx, ecx
mov dword [esp + 0x28c], edi
mov edi, 0x4498
sub edi, ecx
or ebx, edi
mov edi, dword [esp + 0x28c]
and ebx, eax
xor edx, 0xffffffff
or ebx, edx
add bx, 0x24c8
mov word [esp + ecx*2 + 0x68], bx
add ecx, 1
jmp 0x412112
mov eax, dword [esp + 0x260]
cdq
idiv dword [esp + 0x68]
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, edi
add ecx, 2
mov word [edi], ax
mov edx, dword [esp + 0x290]
mov eax, edx
and eax, 1
shl eax, 1
xor edx, 1
add edx, eax
mov edi, ecx
mov eax, dword [esp + 0x294]
jmp 0x411efd
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
xor ebx, ebx
mov eax, 4
jmp 0x412467
mov eax, dword [esp + 0xc8]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4121ce
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov ebx, eax
mov eax, dword [0x446180]
mov ecx, dword [esp + 0xc8]
xor edx, edx
lea edx, [esp + 0x374]
lea edi, [esp + 0xc8]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2ac]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call eax
sub esp, 0x18
mov ecx, dword [esp + 0x54]
jmp 0x412221
cmp eax, 0
mov edi, dword [esp + 0x2c]
jge 0x41224c
jmp 0x41222c
mov dword [esp], ebx
call fcn.00408140
jmp 0x412236
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
mov eax, 4
jmp 0x412467
cmp ecx, 0
jne 0x412315
mov al, byte [esp + 0xc0]
mov byte [esp + 0x138], al
mov word [esp + 0x19e], 0x55c2
mov word [esp + 0x1a0], 0x5588
mov word [esp + 0x1a2], 0x5596
mov word [esp + 0x1a4], 0x558a
mov word [esp + 0x1a6], 0x5530
xor edx, edx
cmp edx, 5
jae 0x4122f9
movzx eax, word [esp + edx*2 + 0x19e]
mov dword [esp + 0x258], eax
mov ecx, edx
add ecx, 0x88e82f4c
mov dword [esp + 0x28], ebx
mov ebx, ecx
and ebx, eax
mov edi, ebx
and edi, 2
xor edi, 2
mov eax, ebx
and eax, 0xfffd
imul eax, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
add ebx, eax
add ecx, dword [esp + 0x258]
sub ecx, ebx
mov ebx, dword [esp + 0x28]
add cx, 0x85a0
mov word [esp + edx*2 + 0x19e], cx
add edx, 1
jmp 0x412297
lea eax, [esp + 0x19e]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004139c0
mov edi, dword [esp + 0x2c]
jmp 0x412463
cmp ecx, 1
jne 0x4123df
mov dword [esp + 0x28], ebx
mov al, byte [esp + 0xbc]
mov byte [esp + 0x13c], al
mov word [esp + 0x194], 0x8dda
mov word [esp + 0x196], 0x8c11
mov word [esp + 0x198], 0x8c1a
mov word [esp + 0x19a], 0x8c1b
mov word [esp + 0x19c], 0x8db8
xor ebx, ebx
cmp ebx, 5
jae 0x4123bf
movzx edx, word [esp + ebx*2 + 0x194]
mov dword [esp + 0x1a8], edx
mov ecx, ebx
add ecx, 0xc034a514
xor edx, 0xffffffff
mov edi, ecx
and edi, edx
mov eax, ecx
xor eax, dword [esp + 0x1a8]
mov edx, ecx
add edx, eax
sub edx, edi
and ecx, dword [esp + 0x1a8]
mov eax, edx
xor eax, 0xffffffff
mov edi, ecx
and edi, eax
xor ecx, 0xffffffff
and edx, ecx
sub edx, edi
add dx, 0xd760
mov word [esp + ebx*2 + 0x194], dx
add ebx, 1
jmp 0x412364
lea eax, [esp + 0x194]
mov ebx, dword [esp + 0x28]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004139c0
mov edi, dword [esp + 0x2c]
jmp 0x412463
cmp ecx, 2
jne 0x412463
mov al, byte [esp + 0xb8]
mov byte [esp + 0x140], al
mov word [esp + 0x18a], 0x412b
mov word [esp + 0x18c], 0x4166
mov word [esp + 0x18e], 0x4164
mov word [esp + 0x190], 0x4159
mov word [esp + 0x192], 0x42a9
xor eax, eax
cmp eax, 5
jae 0x412450
mov cx, word [esp + eax*2 + 0x18a]
mov dx, ax
add dx, 0x9b3d
xor dx, cx
add dx, 0x2618
mov word [esp + eax*2 + 0x18a], dx
add eax, 1
jmp 0x412426
lea eax, [esp + 0x18a]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.004139c0
xor eax, eax
jmp 0x412467
cmp eax, 0
sete cl
test cl, 1
jne 0x412474
jmp 0x412476
xor eax, eax
cmp eax, 0
jne 0x41358c
lea eax, [esp + 0x1bc]
xor ecx, ecx
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.0043a930
mov dword [esp + 0x1ac], eax
cmp eax, 0
setge al
test al, 1
jne 0x4124d2
jmp 0x41260c
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x1bc]
xor edi, edi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043aed0
mov dword [esp + 0x1ac], eax
mov eax, dword [esp + 0x1bc]
mov dword [esp + 0x2a4], eax
mov al, byte [esp + 0x108]
mov byte [esp + 0x168], al
mov word [esp + 0x88], 0xa70b
mov word [esp + 0x8a], 0xa70a
xor eax, eax
cmp eax, 2
jae 0x41257b
mov dx, word [esp + eax*2 + 0x88]
mov edi, eax
add edi, 0x7b94
mov ecx, 0x46b
sub ecx, eax
and ecx, 0x352f
and edi, 0xcad0
or ecx, edi
xor cx, dx
xor cx, 0x352f
add cx, 0x2360
mov word [esp + eax*2 + 0x88], cx
add eax, 1
jmp 0x412537
mov ecx, dword [esp + 0x88]
xor edx, edx
mov edi, dword [esp + 0x2c]
cmp edx, dword [0x446184]
jb 0x412592
jmp 0x41260c
mov dword [esp + 0x28], ebx
mov eax, dword [0x446188]
cmp dword [eax + edx*8], 0xb430e561
sete bl
test bl, 1
jne 0x4125ac
jmp 0x4125f5
mov eax, dword [eax + edx*8 + 4]
cmp eax, ecx
je 0x4125f5
mov dword [esp + 0x284], ecx
mov ecx, dword [0x44618c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x270], edx
call fcn.00438b10
mov edx, dword [esp + 0x270]
mov ecx, dword [esp + 0x284]
test bl, 1
je 0x412600
mov ebx, dword [esp + 0x28]
jmp 0x41260c
add edx, 1
mov ebx, dword [esp + 0x28]
jmp 0x412588
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
mov dword [esp + 0x34], 0
cmp dword [esp + 0x1ac], 0
setge al
test al, 1
mov ecx, dword [esp + 0x54]
jne 0x412647
jmp 0x412635
mov dword [esp + 0x30], 0
mov eax, 4
jmp 0x412be6
cmp ecx, 1
jne 0x412957
mov al, byte [esp + 0xb4]
mov byte [esp + 0x144], al
mov word [esp + 0x60], 0xb080
mov word [esp + 0x62], 0x2727
xor eax, eax
cmp eax, 2
jae 0x4126aa
mov cx, word [esp + eax*2 + 0x60]
mov edx, eax
xor edx, 0xffffffff
or edx, 0xfb96
mov edi, eax
or edi, 0xfb96
add edx, eax
add edx, edi
mov di, 0xfffe
sub di, dx
xor di, cx
mov cx, 0x234f
sub cx, di
mov word [esp + eax*2 + 0x60], cx
add eax, 1
jmp 0x41266e
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x98], eax
mov al, byte [esp + 0xb0]
mov byte [esp + 0x148], al
mov word [esp + 0x5c], 0x646d
mov word [esp + 0x5e], 0xf6cd
xor eax, eax
cmp eax, 2
jae 0x412713
mov cx, word [esp + eax*2 + 0x5c]
mov edx, eax
shl edx, 1
and edx, 0x5758
mov edi, eax
xor edi, 0xabac
add edi, edx
xor di, cx
add di, 0xa2a0
mov word [esp + eax*2 + 0x5c], di
add eax, 1
jmp 0x4126e3
lea eax, [esp + 0x5c]
mov ecx, dword [esp + 0x48]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x94], eax
mov dword [esp], ebx
call fcn.00413a10
mov edi, eax
cmp dword [esp + 0x98], 0
setne al
xor edx, edx
mov byte [esp + 0x45], al
test al, 1
jne 0x41274f
jmp 0x41276b
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.004135b0
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edx, edx
sub edx, ecx
jmp 0x41276b
cmp dword [esp + 0x94], 0
setne cl
xor eax, eax
mov byte [esp + 0x46], cl
test cl, 1
mov dword [esp + 0x1b4], edx
jne 0x41278a
jmp 0x4127a5
mov eax, dword [esp + 0x94]
mov dword [esp], eax
call fcn.004135b0
add eax, 1
mov edx, dword [esp + 0x1b4]
jmp 0x4127a5
add edi, 9
add edi, edx
mov dword [esp + 0x2b4], eax
xor eax, 0xffffffff
sub eax, 0xffffffff
sub edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4127d4
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov dword [esp + 0x30], eax
mov al, byte [esp + 0xac]
mov byte [esp + 0x14c], al
mov word [esp + 0x1d6], 0x1adc
mov word [esp + 0x1d8], 0x1ada
mov word [esp + 0x1da], 0x1a9e
mov word [esp + 0x1dc], 0x1a95
mov word [esp + 0x1de], 0x1a9e
mov word [esp + 0x1e0], 0x1a9f
mov word [esp + 0x1e2], 0x1ae7
mov word [esp + 0x1e4], 0x1ae7
mov word [esp + 0x1e6], 0x1936
xor eax, eax
cmp eax, 9
jae 0x41287f
movzx edx, word [esp + eax*2 + 0x1d6]
mov ecx, eax
add ecx, 0xfcbe
or ecx, edx
mov edi, eax
add edi, 0xfcbe
and edi, edx
sub ecx, edi
add cx, 0x1a10
mov word [esp + eax*2 + 0x1d6], cx
add eax, 1
jmp 0x41284a
lea eax, [esp + 0x1d6]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409e30
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.00409e30
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ebx, 0
je 0x4128cc
mov dword [esp], ebx
call fcn.00408140
test byte [esp + 0x45], 1
jne 0x4128d5
jmp 0x41290f
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x1b4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aab0
shl eax, 1
mov edi, ebx
add edi, eax
jmp 0x41290f
test byte [esp + 0x46], 1
jne 0x412918
jmp 0x41294a
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2b4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aab0
xor ebx, ebx
xor ecx, ecx
mov edi, dword [esp + 0x2c]
jmp 0x412be4
mov dword [esp + 0x30], 0
cmp ecx, 2
je 0x412969
jmp 0x412be4
mov dword [esp], ebx
call fcn.00413a10
xor ecx, ecx
sub ecx, eax
mov eax, 0x1d
sub eax, ecx
sub eax, 0x4706789b
add eax, 1
add eax, 0x4706789b
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41299f
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov dword [esp + 0x30], eax
mov al, byte [esp + 0xa8]
mov byte [esp + 0x150], al
mov word [esp + 0x58], 0x48ca
mov word [esp + 0x5a], 0x48e9
xor eax, eax
cmp eax, 2
jae 0x412a1a
movzx ecx, word [esp + eax*2 + 0x58]
mov edx, eax
add edx, 0x1c7fdbf6
mov edi, edx
shl edi, 1
and edi, 0xfa451364
xor edx, 0x7d2289b2
add edx, edi
mov edi, dword [esp + 0x2c]
xor edx, ecx
xor ecx, ecx
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x5a82
xor ecx, 0xd2be
add ecx, 1
sub ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x58], cx
add eax, 1
jmp 0x4129c9
mov al, byte [esp + 0xa4]
mov byte [esp + 0x154], al
mov word [esp + 0x21a], 0x3804
mov word [esp + 0x21c], 0x381a
mov word [esp + 0x21e], 0x3801
mov word [esp + 0x220], 0x3812
mov word [esp + 0x222], 0x380a
mov word [esp + 0x224], 0x380a
mov word [esp + 0x226], 0x3812
mov word [esp + 0x228], 0x381e
mov word [esp + 0x22a], 0x3810
mov word [esp + 0x22c], 0x3811
mov word [esp + 0x22e], 0x39de
mov word [esp + 0x230], 0x39d2
mov word [esp + 0x232], 0x3825
mov word [esp + 0x234], 0x3839
mov word [esp + 0x236], 0x3827
mov word [esp + 0x238], 0x3820
mov word [esp + 0x23a], 0x39e4
mov word [esp + 0x23c], 0x3827
mov word [esp + 0x23e], 0x383f
mov word [esp + 0x240], 0x3837
mov word [esp + 0x242], 0x3829
mov word [esp + 0x244], 0x383a
mov word [esp + 0x246], 0x3839
mov word [esp + 0x248], 0x39eb
mov word [esp + 0x24a], 0x39e1
mov word [esp + 0x24c], 0x382b
mov word [esp + 0x24e], 0x39ee
mov word [esp + 0x250], 0x39ed
mov word [esp + 0x252], 0x3990
xor eax, eax
cmp eax, 0x1d
jae 0x412bac
mov cx, word [esp + eax*2 + 0x21a]
mov word [esp + 0x17c], cx
mov dword [esp + 0x28], ebx
movzx ebx, cx
mov edi, eax
add edi, 0xacd9b114
mov edx, edi
xor edx, ebx
mov ebx, 0x4eeb
sub ebx, eax
mov ecx, 0x4eeb
sub ecx, eax
and ebx, ecx
or edx, ebx
mov ebx, dword [esp + 0x28]
shl edx, 1
add edx, edi
mov edi, dword [esp + 0x2c]
add dx, word [esp + 0x17c]
add dx, 0x7762
mov word [esp + eax*2 + 0x21a], dx
add eax, 1
jmp 0x412b4c
lea eax, [esp + 0x21a]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409e30
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00409e30
lea ecx, [esp + 0x58]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409e30
mov ecx, 2
xor eax, eax
cmp eax, 0
je 0x412e2d
jmp 0x41358c
call fcn.00413a30
xor ebx, 1
mov ecx, dword [esp + 0x54]
mov eax, ecx
xor eax, 2
or ebx, eax
sete al
mov dword [esp + 0x30], 0
test al, 1
jne 0x412c1d
xor ebx, ebx
jmp 0x412e2d
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.004135d0
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412c46
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov ebx, eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aab0
mov eax, dword [esp + 0x1c0]
add eax, 0x18
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412c91
mov ecx, eax
mov dword [esp], ecx
call fcn.00408130
mov dword [esp + 0x30], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x158], al
mov word [esp + 0x1e8], 0x8ef2
mov word [esp + 0x1ea], 0x810c
mov word [esp + 0x1ec], 0x8ef3
mov word [esp + 0x1ee], 0x8100
mov word [esp + 0x1f0], 0x8ef4
mov word [esp + 0x1f2], 0x8ef4
mov word [esp + 0x1f4], 0x8100
mov word [esp + 0x1f6], 0x810c
mov word [esp + 0x1f8], 0x8106
mov word [esp + 0x1fa], 0x8107
mov word [esp + 0x1fc], 0x814c
mov word [esp + 0x1fe], 0x8140
mov word [esp + 0x200], 0x810b
mov word [esp + 0x202], 0x8ef7
mov word [esp + 0x204], 0x80f5
mov word [esp + 0x206], 0x80f2
mov word [esp + 0x208], 0x80b2
mov word [esp + 0x20a], 0x80f1
mov word [esp + 0x20c], 0x8f0d
mov word [esp + 0x20e], 0x8f05
mov word [esp + 0x210], 0x80f7
mov word [esp + 0x212], 0x8f04
mov word [esp + 0x214], 0x8f0b
mov word [esp + 0x216], 0x80b9
mov word [esp + 0x218], 0x809a
xor eax, eax
cmp eax, 0x19
jae 0x412df6
mov cx, word [esp + eax*2 + 0x1e8]
movzx edi, cx
mov dword [esp + 0x2b0], ebx
mov ebx, eax
shl ebx, 1
and ebx, 0xb72a6de4
mov edx, eax
xor edx, 0xdb9536f2
add edx, ebx
mov ebx, edx
and ebx, edi
shl ebx, 1
sub edx, ebx
mov ebx, dword [esp + 0x2b0]
add dx, cx
add dx, 0x4870
mov word [esp + eax*2 + 0x1e8], dx
add eax, 1
jmp 0x412da7
lea eax, [esp + 0x1e8]
mov ecx, dword [esp + 0x30]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409e30
mov dword [esp], eax
mov dword [esp + 4], ebx
call fcn.00409e30
mov edi, dword [esp + 0x2c]
mov dword [esp], ebx
call fcn.00408140
mov ecx, dword [esp + 0x54]
xor ebx, ebx
jmp 0x412e2d
test ecx, ecx
je 0x412e4e
jmp 0x412e33
mov eax, ecx
sub eax, 1
je 0x412feb
jmp 0x412e40
sub ecx, 2
je 0x4132f5
jmp 0x413557
test byte [esp + 0x47], 1
jne 0x412e5a
jmp 0x412feb
lea edi, [esp + 0x330]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x330], 0x44
mov eax, dword [0x445178]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043a3b0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x330]
lea edx, [esp + 0x2dc]
mov dword [esp], ebx
mov edi, dword [esp + 0x30]
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 0x412fe2
mov eax, dword [esp + 0x2dc]
mov dword [esp + 0x298], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x16c], al
mov word [esp + 0x84], 0xa70b
mov word [esp + 0x86], 0xa70a
xor eax, eax
cmp eax, 2
jae 0x412f66
mov dx, word [esp + eax*2 + 0x84]
mov edi, eax
add edi, 0x7b94
mov ecx, 0x46b
sub ecx, eax
and ecx, 0x352f
and edi, 0xcad0
or ecx, edi
xor cx, dx
xor cx, 0x352f
add cx, 0x2360
mov word [esp + eax*2 + 0x84], cx
add eax, 1
jmp 0x412f22
mov ecx, dword [esp + 0x84]
xor edi, edi
cmp edi, dword [0x446184]
jb 0x412f79
jmp 0x412fe2
mov dword [esp + 0x28], ebx
mov eax, dword [0x446188]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x412f93
jmp 0x412fce
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412fce
mov dword [esp + 0x274], ecx
mov ecx, dword [0x44618c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x298]
mov dword [esp + 0xc], eax
call fcn.00438b10
mov ecx, dword [esp + 0x274]
test bl, 1
je 0x412fd9
mov ebx, dword [esp + 0x28]
jmp 0x412fe2
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0x412f6f
mov edi, dword [esp + 0x2c]
jmp 0x413557
mov eax, dword [0x445178]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043a3b0
mov edi, eax
test edi, edi
setne al
call fcn.00413a30
call fcn.00413a30
mov eax, dword [esp + 0x34]
xor ecx, ecx
lea ecx, [0x420d50]
mov dword [esp], 0
mov dword [esp + 4], 0
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
call edi
sub esp, 0x18
mov dword [esp + 0x1b8], eax
cmp eax, 0
setne cl
test cl, 1
mov edi, dword [esp + 0x2c]
jne 0x413064
jmp 0x4132f0
mov cl, byte [esp + 0x9c]
mov byte [esp + 0x15c], cl
mov word [esp + 0x182], 0x6550
mov word [esp + 0x184], 0x76d
mov word [esp + 0x186], 0x23ad
mov word [esp + 0x188], 0x23ac
xor ecx, ecx
cmp ecx, 4
jae 0x4130f6
mov ax, word [esp + ecx*2 + 0x182]
mov word [esp + 0x17a], ax
mov edx, ebx
mov ebx, ecx
add ebx, 0x4dd0
mov eax, ecx
add eax, 0x4dd0
mov edi, ecx
add edi, 0x4dd0
and edi, eax
and edi, 0x77dd
and ebx, 0x8822
or edi, ebx
mov ebx, edx
xor di, word [esp + 0x17a]
add di, 0x9180
mov word [esp + ecx*2 + 0x182], di
add ecx, 1
jmp 0x41309c
mov eax, dword [esp + 0x182]
mov ecx, dword [esp + 0x186]
mov dword [esp + 0x2c4], ecx
mov dword [esp + 0x2c0], eax
mov al, byte [esp + 0x160]
mov byte [esp + 0x164], al
mov word [esp + 0x8c], 0xa70b
mov word [esp + 0x8e], 0xa70a
xor ecx, ecx
cmp ecx, 2
jae 0x413178
mov di, word [esp + ecx*2 + 0x8c]
mov eax, ecx
add eax, 0x7b94
mov edx, 0x46b
sub edx, ecx
and edx, 0x352f
and eax, 0xcad0
or edx, eax
xor dx, di
xor dx, 0x352f
add dx, 0x2360
mov word [esp + ecx*2 + 0x8c], dx
add ecx, 1
jmp 0x413136
mov eax, dword [esp + 0x8c]
xor edi, edi
mov dword [esp + 0x28], ebx
cmp edi, dword [0x446184]
jb 0x41318f
jmp 0x41320c
mov ecx, dword [0x446188]
cmp dword [ecx + edi*8], 0xa67d73aa
sete bl
test bl, 1
jne 0x4131a6
jmp 0x4131f5
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x4131f5
mov dword [esp + 0x288], eax
mov eax, dword [0x44618c]
xor edx, edx
lea edx, [esp + 0x2c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], edx
call fcn.00438b10
mov eax, dword [esp + 0x288]
test bl, 1
je 0x413200
mov ebx, dword [esp + 0x28]
jmp 0x41320c
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0x413185
mov al, byte [esp + 0x100]
mov byte [esp + 0x170], al
mov word [esp + 0x80], 0xa70b
mov word [esp + 0x82], 0xa70a
xor ecx, ecx
cmp ecx, 2
jae 0x413272
mov di, word [esp + ecx*2 + 0x80]
mov eax, ecx
add eax, 0x7b94
mov edx, 0x46b
sub edx, ecx
and edx, 0x352f
and eax, 0xcad0
or edx, eax
xor dx, di
xor dx, 0x352f
add dx, 0x2360
mov word [esp + ecx*2 + 0x80], dx
add ecx, 1
jmp 0x413230
mov eax, dword [esp + 0x80]
xor edi, edi
cmp edi, dword [0x446184]
jb 0x413285
jmp 0x4132ea
mov ecx, dword [0x446188]
cmp dword [ecx + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x41329c
jmp 0x4132d6
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x4132d6
mov dword [esp + 0x278], eax
mov eax, dword [0x44618c]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xc], eax
call fcn.00438b10
mov eax, dword [esp + 0x278]
test bl, 1
je 0x4132e1
mov ebx, dword [esp + 0x28]
jmp 0x4132ea
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0x41327b
mov edi, dword [esp + 0x2c]
jmp 0x4132f0
jmp 0x413557
lea edi, [esp + 0x2ec]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2ec], 0x44
mov eax, dword [0x445178]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043a3b0
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2ec]
lea edx, [esp + 0x2cc]
mov dword [esp], 0
mov edi, dword [esp + 0x30]
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 0x413551
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x2a0], eax
mov al, byte [esp + 0xfc]
mov byte [esp + 0x174], al
mov word [esp + 0x7c], 0xa70b
mov word [esp + 0x7e], 0xa70a
xor eax, eax
cmp eax, 2
jae 0x4133f9
mov dx, word [esp + eax*2 + 0x7c]
mov edi, eax
add edi, 0x7b94
mov ecx, 0x46b
sub ecx, eax
and ecx, 0x352f
and edi, 0xcad0
or ecx, edi
xor cx, dx
xor cx, 0x352f
add cx, 0x2360
mov word [esp + eax*2 + 0x7c], cx
add eax, 1
jmp 0x4133bb
mov ecx, dword [esp + 0x7c]
xor edi, edi
mov dword [esp + 0x28], ebx
cmp edi, dword [0x446184]
jb 0x41340d
jmp 0x413472
mov eax, dword [0x446188]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x413423
jmp 0x41345e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41345e
mov dword [esp + 0x280], ecx
mov ecx, dword [0x44618c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0xc], eax
call fcn.00438b10
mov ecx, dword [esp + 0x280]
test bl, 1
je 0x413469
mov ebx, dword [esp + 0x28]
jmp 0x413472
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0x413403
mov eax, dword [esp + 0x2cc]
mov dword [esp + 0x29c], eax
mov al, byte [esp + 0xf8]
mov byte [esp + 0x178], al
mov word [esp + 0x78], 0xa70b
mov word [esp + 0x7a], 0xa70a
xor eax, eax
cmp eax, 2
jae 0x4134dc
mov dx, word [esp + eax*2 + 0x78]
mov edi, eax
add edi, 0x7b94
mov ecx, 0x46b
sub ecx, eax
and ecx, 0x352f
and edi, 0xcad0
or ecx, edi
xor cx, dx
xor cx, 0x352f
add cx, 0x2360
mov word [esp + eax*2 + 0x78], cx
add eax, 1
jmp 0x41349e
mov ecx, dword [esp + 0x78]
xor edi, edi
cmp edi, dword [0x446184]
jb 0x4134ec
jmp 0x413551
mov eax, dword [0x446188]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x413502
jmp 0x41353d
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41353d
mov dword [esp + 0x27c], ecx
mov ecx, dword [0x44618c]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x29c]
mov dword [esp + 0xc], eax
call fcn.00438b10
mov ecx, dword [esp + 0x27c]
test bl, 1
je 0x413548
mov ebx, dword [esp + 0x28]
jmp 0x413551
add edi, 1
mov ebx, dword [esp + 0x28]
jmp 0x4134e2
mov edi, dword [esp + 0x2c]
jmp 0x413557
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call fcn.00437140
cmp ebx, 0
je 0x413570
mov dword [esp], ebx
call fcn.00408140
cmp dword [esp + 0x30], 0
sete al
test al, 1
jne 0x41358a
jmp 0x41357e
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00408140
jmp 0x41358c
sub edi, 0xffffffff
jmp 0x413591
jmp 0x4118fc
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret