Function at 0x411be0
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, 0x810
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b60
mov esi, eax
cmp esi, 0
jne 0x411c08
xor eax, eax
jmp 0x413926
xor ebx, ebx
jmp 0x411c0c
mov dword [esp], esi
call fcn.00401f30
cmp ebx, eax
setb al
test al, 1
jne 0x411c26
jmp 0x411c1f
mov al, 1
jmp 0x413926
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00401f40
mov edi, eax
mov al, byte [esp + 0xfc]
mov byte [esp + 0x114], al
mov word [esp + 0x40], 0x81f9
mov ax, word [esp + 0x40]
xor ax, 0x45a1
xor ax, 0xc58d
add ax, 0xfea0
mov word [esp + 0x40], ax
lea eax, [esp + 0x40]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401e30
cmp eax, 0
je 0x411d84
mov al, byte [esp + 0xf8]
mov byte [esp + 0x118], al
mov word [esp + 0x78], 0x3a7a
mov word [esp + 0x7a], 0x8ddd
xor eax, eax
mov dword [esp + 0x4c], edi
cmp eax, 2
jae 0x411d1a
movzx edx, word [esp + eax*2 + 0x78]
mov edi, eax
shl edi, 1
and edi, 0x56c5d878
mov ecx, eax
xor ecx, 0x2b62ec3c
mov dword [esp + 0x2ac], ebx
mov ebx, esi
mov esi, ecx
and esi, edi
shl esi, 1
xor ecx, edi
mov edi, dword [esp + 0x4c]
add ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
sub ecx, esi
add ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x49d13c3e
xor ecx, 0xa4e89e1f
add ecx, edx
mov edx, ecx
xor edx, 0x7ffe
mov esi, ecx
or esi, 1
and esi, edx
shl esi, 1
xor ecx, 1
add ecx, esi
mov esi, ebx
mov ebx, dword [esp + 0x2ac]
mov word [esp + eax*2 + 0x78], cx
add eax, 1
jmp 0x411ca2
lea eax, [esp + 0x78]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e30
cmp eax, 0
je 0x411d84
mov al, byte [esp + 0xf4]
mov byte [esp + 0x11c], al
mov word [esp + 0x3e], 0x196c
mov ax, word [esp + 0x3e]
xor ax, 0x9101
add ax, 0x77f8
mov word [esp + 0x3e], ax
lea eax, [esp + 0x3e]
mov dword [esp], edi
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 0x411d86
jmp 0x411d8b
jmp 0x411d86
jmp 0x413915
mov al, byte [esp + 0xf0]
mov byte [esp + 0x120], al
mov word [esp + 0x3c], 0xbc46
mov dword [esp + 0x28], esi
mov ax, word [esp + 0x3c]
xor ax, 0x788b
add ax, 0x3ba8
mov word [esp + 0x3c], ax
lea eax, [esp + 0x3c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x290], eax
mov al, byte [esp + 0xec]
mov byte [esp + 0x124], al
mov word [esp + 0x74], 0xfb8c
mov word [esp + 0x76], 0x746b
xor eax, eax
cmp eax, 2
jae 0x411e1b
movzx edx, word [esp + eax*2 + 0x74]
mov ecx, 0x4645
sub ecx, eax
or ecx, edx
xor ecx, 0xffffffff
mov esi, 0x4645
sub esi, eax
and esi, edx
or esi, ecx
add si, 0x3230
mov word [esp + eax*2 + 0x74], si
add eax, 1
jmp 0x411deb
lea eax, [esp + 0x74]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401970
fnstcw word [esp + 0x52]
movzx eax, word [esp + 0x52]
or eax, 0xc00
mov word [esp + 0x184], ax
fldcw word [esp + 0x184]
fistp dword [esp + 0x2b0]
fldcw word [esp + 0x52]
mov eax, dword [esp + 0x2b0]
mov dword [esp + 0x58], eax
mov al, byte [esp + 0xe8]
mov byte [esp + 0x128], al
call fcn.00413d80
call fcn.00413d80
mov word [esp + 0x3a], 0x99e8
movzx eax, word [esp + 0x3a]
mov ecx, eax
and ecx, 0x4a65
add ecx, ecx
neg ecx
lea eax, [eax + ecx + 0x773d]
mov word [esp + 0x3a], ax
lea eax, [esp + 0x3a]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401970
fnstcw word [esp + 0x50]
movzx eax, word [esp + 0x50]
or eax, 0xc00
mov word [esp + 0x182], ax
fldcw word [esp + 0x182]
fistp dword [esp + 0x2b4]
fldcw word [esp + 0x50]
mov edi, dword [esp + 0x2b4]
lea eax, [esp + 0x40c]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x290]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a850
lea eax, [esp + 0x40c]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x1b8]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040b040
test al, 1
mov esi, dword [esp + 0x28]
jne 0x411f40
jmp 0x411f3b
jmp 0x413915
cmp edi, 0
sete al
mov byte [esp + 0x4b], al
test al, 1
jne 0x411f53
jmp 0x412f38
mov al, byte [esp + 0xe4]
mov byte [esp + 0x12c], al
mov word [esp + 0x38], 0xd284
movzx ecx, word [esp + 0x38]
mov eax, ecx
and eax, 0xc33a506b
xor ecx, 0xffffffff
and ecx, 0x3cc5af94
mov edx, eax
xor edx, 0xffffffff
shl edx, 1
add edx, eax
mov eax, edx
add eax, 1
mov esi, ecx
xor esi, 0xffffffff
and eax, esi
add edx, 1
xor ecx, 0xffffffff
and edx, ecx
or eax, edx
mov ecx, eax
xor ecx, 0xffffffff
shl ecx, 1
and ecx, 0x6be
xor eax, 0x7ca0
add eax, ecx
add ax, 1
mov word [esp + 0x38], ax
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov edi, eax
cmp edi, 0
je 0x4121c5
mov dword [esp], edi
call fcn.00413940
mov ecx, eax
and ecx, 1
shl ecx, 1
mov dword [esp + 0x1b0], eax
xor eax, 1
add eax, ecx
mov ecx, 2
mov dword [esp + 0x250], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412010
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x250]
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a850
xor eax, eax
lea eax, [esp + 0xe0]
mov dword [esp], 0
mov dword [esp + 0x54], esi
mov dword [esp + 4], esi
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 [0x4452a8]
sub esp, 0x18
mov cl, byte [esp + 0xdc]
mov byte [esp + 0x130], cl
mov word [esp + 0x70], 0xd242
mov word [esp + 0x72], 0x9262
xor ecx, ecx
cmp ecx, 2
jae 0x4120d6
movzx esi, word [esp + ecx*2 + 0x70]
mov edi, ecx
shl edi, 1
and edi, 0xabdd1652
mov edx, ecx
xor edx, 0xd5ee8b29
add edx, edi
xor edx, esi
mov esi, edx
add esi, 0xa6b7
and edx, 1
xor edx, 1
or esi, 1
add edx, esi
mov word [esp + ecx*2 + 0x70], dx
add ecx, 1
jmp 0x412099
mov ecx, dword [esp + 0x70]
cmp eax, ecx
mov esi, dword [esp + 0x28]
jne 0x412108
jmp 0x4120e4
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00407fb0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
xor edi, edi
mov eax, 4
jmp 0x4121b1
mov eax, dword [esp + 0xe0]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412125
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov edi, eax
mov eax, dword [0x4452a8]
mov ecx, dword [esp + 0xe0]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x54]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x1b0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xe0]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
cmp eax, 0
jge 0x41219f
jmp 0x412176
mov dword [esp], edi
call fcn.00407fb0
jmp 0x412180
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00407fb0
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
mov eax, 4
jmp 0x4121b1
jmp 0x4121a1
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.00407fb0
xor eax, eax
jmp 0x4121b1
cmp eax, 0
sete cl
test cl, 1
jne 0x412792
jmp 0x412794
call fcn.00408810
and eax, 0xf
add eax, 0x10
xor edx, edx
lea esi, [esp + 0x3cc]
jmp 0x4121db
cmp edx, eax
setb cl
test cl, 1
jne 0x41243b
jmp 0x4121eb
mov word [esi], 0
mov al, byte [esp + 0xd4]
mov byte [esp + 0x138], al
mov word [esp + 0x1be], 0x46d5
mov word [esp + 0x1c0], 0x46a5
mov word [esp + 0x1c2], 0x46b7
mov word [esp + 0x1c4], 0x46be
mov word [esp + 0x1c6], 0x46a4
mov word [esp + 0x1c8], 0x46d0
mov word [esp + 0x1ca], 0x46aa
mov word [esp + 0x1cc], 0x46f7
xor edx, edx
cmp edx, 8
jae 0x4122df
movzx edi, word [esp + edx*2 + 0x1be]
mov eax, edx
add eax, 0x62a82d70
mov dword [esp + 0x254], eax
mov ecx, edi
shl ecx, 1
xor ecx, 0xffffffff
add ecx, edi
and ecx, 0x48982dc2
mov eax, edi
add eax, 1
xor edi, 0xffffffff
or edi, 0xb767d23d
add edi, eax
mov eax, 0x1d57d28f
sub eax, edx
and eax, 0x48982dc2
mov esi, edx
add esi, 0x62a82d70
and esi, 0x48982dc2
xor esi, 0x48982dc2
or eax, esi
mov esi, dword [esp + 0x254]
and esi, 0xb767d23d
or ecx, edi
or eax, esi
mov esi, eax
and esi, ecx
shl esi, 1
sub eax, esi
add eax, ecx
add ax, 0x9480
mov word [esp + edx*2 + 0x1be], ax
add edx, 1
jmp 0x412250
lea eax, [esp + 0x36c]
lea ecx, [esp + 0x1be]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409b30
lea ecx, [esp + 0x3cc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409b30
lea ecx, [esp + 0x36c]
sub eax, ecx
sar eax, 1
xor ecx, ecx
lea edx, [esp + 0x36c]
lea ecx, [esp + 0xd0]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 0x2a4], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], ecx
call dword [0x4452a8]
sub esp, 0x18
mov dword [esp + 0x284], eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x13c], al
mov word [esp + 0x68], 0x6a55
mov word [esp + 0x6a], 0x2a37
xor edx, edx
mov esi, dword [esp + 0x28]
cmp edx, 2
jae 0x412420
movzx esi, word [esp + edx*2 + 0x68]
mov dword [esp + 0x25c], esi
mov ecx, edx
add ecx, 0xaf45ba06
mov eax, 0x45f9
sub eax, edx
or eax, esi
mov dword [esp + 0x260], eax
mov edi, 0x50ba45f9
sub edi, edx
and edi, 0xe351f80b
mov eax, ecx
and eax, 0x1cae07f4
or edi, eax
xor edi, 0x1cae07f4
mov eax, 0x10ba45f9
sub eax, edx
and eax, 0x173e8dce
and ecx, 0xe8c17231
or eax, ecx
mov ecx, eax
xor ecx, 0x8dce
mov esi, edi
and esi, ecx
xor eax, edi
xor eax, 0x7231
add edi, eax
sub edi, esi
mov esi, dword [esp + 0x28]
and edi, dword [esp + 0x25c]
mov eax, dword [esp + 0x260]
xor eax, 0xffffffff
or edi, eax
add di, 0x2fd0
mov word [esp + edx*2 + 0x68], di
add edx, 1
jmp 0x412383
mov eax, dword [esp + 0x284]
cmp eax, dword [esp + 0x68]
setne al
test al, 1
jne 0x4124db
jmp 0x4124f3
mov dword [esp + 0x288], edx
mov dword [esp + 0x28c], eax
call fcn.00408810
mov dword [esp + 0x264], eax
mov cl, byte [esp + 0xd8]
mov byte [esp + 0x134], cl
mov word [esp + 0x6c], 0x3f07
mov word [esp + 0x6e], 0x3f24
xor ecx, ecx
cmp ecx, 2
jae 0x4124a7
mov eax, esi
movzx esi, word [esp + ecx*2 + 0x6c]
mov edx, 0x704
sub edx, ecx
or edx, esi
mov edi, 0x704
sub edi, ecx
and edi, esi
mov esi, eax
xor edx, 0xffffffff
or edi, edx
add di, 0x3828
mov word [esp + ecx*2 + 0x6c], di
add ecx, 1
jmp 0x412473
mov eax, dword [esp + 0x264]
cdq
idiv dword [esp + 0x6c]
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov eax, esi
add eax, 2
mov word [esi], cx
mov edx, dword [esp + 0x288]
add edx, 1
mov esi, eax
mov eax, dword [esp + 0x28c]
jmp 0x4121db
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
xor edi, edi
mov eax, 4
jmp 0x412785
mov eax, dword [esp + 0xd0]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412513
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov edi, eax
mov eax, dword [0x4452a8]
mov ecx, dword [esp + 0xd0]
jmp 0x41252b
xor edx, edx
lea edx, [esp + 0x36c]
lea esi, [esp + 0xd0]
mov dword [esp], 0
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2a4]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
call eax
sub esp, 0x18
cmp eax, 0
jge 0x41258d
mov esi, dword [esp + 0x28]
jmp 0x41256d
mov dword [esp], edi
call fcn.00407fb0
jmp 0x412577
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
mov eax, 4
jmp 0x412785
mov ecx, dword [esp + 0x58]
cmp ecx, 0
jne 0x412629
mov al, byte [esp + 0xc8]
mov byte [esp + 0x140], al
mov word [esp + 0x1a2], 0xe085
mov word [esp + 0x1a4], 0xe0b9
mov word [esp + 0x1a6], 0xe055
mov word [esp + 0x1a8], 0xe0bb
mov word [esp + 0x1aa], 0xe0df
xor eax, eax
cmp eax, 5
jae 0x41260d
movzx edx, word [esp + eax*2 + 0x1a2]
mov ecx, eax
add ecx, 0x8d3c56c3
mov esi, ecx
and esi, edx
shl esi, 1
add ecx, edx
sub ecx, esi
add cx, 0x49e8
mov word [esp + eax*2 + 0x1a2], cx
add eax, 1
jmp 0x4125dc
lea eax, [esp + 0x1a2]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413d10
mov esi, dword [esp + 0x28]
jmp 0x412781
cmp ecx, 1
sete al
mov esi, dword [esp + 0x28]
test al, 1
jne 0x41263c
jmp 0x4126d8
mov al, byte [esp + 0xc4]
mov byte [esp + 0x144], al
mov word [esp + 0x198], 0xffb6
mov word [esp + 0x19a], 0xfe7d
mov word [esp + 0x19c], 0xfe76
mov word [esp + 0x19e], 0xfe77
mov word [esp + 0x1a0], 0xff9c
xor eax, eax
cmp eax, 5
jae 0x4126bc
movzx edx, word [esp + eax*2 + 0x198]
mov ecx, eax
add ecx, 0x5558
and ecx, edx
mov esi, ecx
shl esi, 1
xor esi, 0xffffffff
add ecx, esi
mov esi, eax
add esi, 0x5558
or esi, edx
and ecx, esi
add cx, 0x5540
mov word [esp + eax*2 + 0x198], cx
add eax, 1
jmp 0x41267e
lea eax, [esp + 0x198]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413d10
mov esi, dword [esp + 0x28]
jmp 0x412781
cmp ecx, 2
sete al
test al, 1
jne 0x4126e7
jmp 0x412781
mov al, byte [esp + 0xc0]
mov byte [esp + 0x148], al
mov word [esp + 0x18e], 0xd3a7
mov word [esp + 0x190], 0xd3ea
mov word [esp + 0x192], 0xd3e8
mov word [esp + 0x194], 0xd3ad
mov word [esp + 0x196], 0xd39d
xor eax, eax
cmp eax, 5
jae 0x412768
mov cx, word [esp + eax*2 + 0x18e]
mov edx, eax
shl edx, 1
and edx, 0x1622
mov esi, eax
xor esi, 0x8b11
add esi, edx
xor si, cx
add si, 0xa778
mov word [esp + eax*2 + 0x18e], si
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412729
mov esi, dword [esp + 0x28]
jmp 0x41276e
lea eax, [esp + 0x18e]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413d10
xor eax, eax
jmp 0x412785
cmp eax, 0
sete cl
test cl, 1
jne 0x412792
jmp 0x412794
xor eax, eax
cmp eax, 0
jne 0x413915
lea eax, [esp + 0x1b4]
xor ecx, ecx
mov dword [esp + 0x2c], edi
mov dword [esp], edi
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.00439600
mov edi, eax
cmp edi, 0
jl 0x41292b
mov eax, dword [esp + 0x1b8]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x1b4]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.00439bc0
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x2a0], ecx
jmp 0x412825
mov dword [esp + 0x258], eax
mov al, byte [esp + 0x110]
mov byte [esp + 0x170], al
mov word [esp + 0x8c], 0x7338
mov word [esp + 0x8e], 0x7327
xor eax, eax
cmp eax, 2
jae 0x41289a
movzx edx, word [esp + eax*2 + 0x8c]
mov ecx, 0x46b0
sub ecx, eax
and ecx, edx
mov esi, 0x46b0
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
add cx, 0x3588
mov word [esp + eax*2 + 0x8c], cx
mov ecx, eax
shl ecx, 1
mov edx, eax
shl edx, 1
add eax, 1
sub eax, edx
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
jmp 0x412850
mov edi, dword [esp + 0x8c]
xor edx, edx
mov esi, dword [esp + 0x28]
cmp edx, dword [0x4452ac]
jb 0x4128b1
jmp 0x412922
mov eax, dword [0x4452b0]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esp + 0x47], cl
test cl, 1
jne 0x4128cb
jmp 0x412914
mov eax, dword [eax + edx*8 + 4]
cmp eax, edi
je 0x412914
mov dword [esp + 0x27c], edi
mov ecx, dword [0x4452b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x268], edx
call fcn.00437870
mov edx, dword [esp + 0x268]
mov edi, dword [esp + 0x27c]
test byte [esp + 0x47], 1
je 0x41291d
jmp 0x412922
add edx, 1
jmp 0x4128a7
mov edi, dword [esp + 0x258]
jmp 0x41292b
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
mov dword [esp + 0x30], 0
cmp edi, 0
jge 0x41295e
mov dword [esp + 0x34], 0
mov eax, 4
mov ecx, dword [esp + 0x58]
mov edi, dword [esp + 0x2c]
jmp 0x412f2a
mov ecx, dword [esp + 0x58]
cmp ecx, 1
mov edi, dword [esp + 0x2c]
jne 0x412cbe
mov al, byte [esp + 0xbc]
mov byte [esp + 0x14c], al
mov word [esp + 0x64], 0x6001
mov word [esp + 0x66], 0x9398
xor edx, edx
mov edi, dword [esp + 0x4c]
cmp edx, 2
jae 0x4129ff
movzx eax, word [esp + edx*2 + 0x64]
mov dword [esp + 0x24c], eax
mov ecx, edx
add ecx, 0x84390170
mov esi, ecx
xor esi, 0xcc29a811
shl ecx, 1
and ecx, 0x67acafdc
sub ecx, esi
mov edi, ecx
and edi, eax
mov esi, edi
and esi, 2
xor esi, 2
mov eax, edi
and eax, 0xfffd
imul eax, esi
mov esi, edi
and esi, 2
or edi, 2
imul edi, esi
mov esi, dword [esp + 0x28]
add edi, eax
add ecx, dword [esp + 0x24c]
sub ecx, edi
mov edi, dword [esp + 0x4c]
add cx, 0x3508
mov word [esp + edx*2 + 0x64], cx
add edx, 1
jmp 0x412991
lea eax, [esp + 0x64]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x9c], eax
mov al, byte [esp + 0xb8]
mov byte [esp + 0x150], al
mov word [esp + 0x60], 0x831
mov word [esp + 0x62], 0x7651
mov edi, dword [esp + 0x2c]
jmp 0x412a38
xor eax, eax
cmp eax, 2
jae 0x412a6e
movzx edx, word [esp + eax*2 + 0x60]
mov ecx, eax
add ecx, 0x3c14f0d0
xor ecx, edx
mov edx, ecx
xor edx, 0x8681
shl ecx, 1
and ecx, 0xf2fc
sub ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x60], cx
add eax, 1
jmp 0x412a3a
lea eax, [esp + 0x60]
mov ecx, dword [esp + 0x4c]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x98], eax
mov dword [esp], edi
call fcn.00413d60
mov edi, eax
cmp dword [esp + 0x9c], 0
setne al
mov dword [esp + 0x94], 0
mov byte [esp + 0x49], al
test al, 1
jne 0x412ab3
jmp 0x412ad5
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004081d0
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov dword [esp + 0x94], ecx
jmp 0x412ad5
cmp dword [esp + 0x98], 0
setne cl
xor eax, eax
mov byte [esp + 0x4a], cl
test cl, 1
jne 0x412aed
jmp 0x412b01
mov eax, dword [esp + 0x98]
mov dword [esp], eax
call fcn.004081d0
add eax, 1
jmp 0x412b01
add edi, 9
mov ecx, edi
mov edx, dword [esp + 0x94]
and ecx, edx
shl ecx, 1
xor edi, edx
add edi, ecx
mov dword [esp + 0x2a8], eax
add edi, eax
mov eax, edi
and eax, 1
or edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412b40
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xb4]
mov byte [esp + 0x154], al
mov word [esp + 0x1ce], 0xc91d
mov word [esp + 0x1d0], 0xc915
mov word [esp + 0x1d2], 0xc91f
mov word [esp + 0x1d4], 0xc926
mov word [esp + 0x1d6], 0xc91f
mov word [esp + 0x1d8], 0xc918
mov word [esp + 0x1da], 0xcad6
mov word [esp + 0x1dc], 0xcad4
mov word [esp + 0x1de], 0xca87
xor eax, eax
mov edi, dword [esp + 0x2c]
cmp eax, 9
jae 0x412be4
mov cx, word [esp + eax*2 + 0x1ce]
mov dx, ax
add dx, 0x5337
xor dx, cx
add dx, 0x6648
mov word [esp + eax*2 + 0x1ce], dx
add eax, 1
jmp 0x412bba
lea eax, [esp + 0x1ce]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409b30
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.00409b30
mov ecx, edi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
je 0x412c39
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call fcn.00407fb0
jmp 0x412c39
test byte [esp + 0x49], 1
jne 0x412c42
jmp 0x412c7a
mov ecx, edi
add ecx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ecx
mov edi, ecx
mov eax, dword [esp + 0x94]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a850
shl eax, 1
add edi, eax
test byte [esp + 0x4a], 1
jne 0x412c83
jmp 0x412cb5
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x2a8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a850
xor edi, edi
xor ecx, ecx
jmp 0x412f28
mov dword [esp + 0x34], 0
cmp ecx, 2
je 0x412cd0
jmp 0x412f28
mov dword [esp], edi
call fcn.00413d60
xor eax, 0xffffffff
sub eax, 0xffffffff
mov ecx, 0x1d
sub ecx, eax
mov eax, ecx
and eax, 1
shl eax, 1
xor ecx, 1
add ecx, eax
mov edx, 2
mov eax, ecx
mul edx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412d09
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov dword [esp + 0x34], eax
mov al, byte [esp + 0xb0]
mov byte [esp + 0x158], al
mov word [esp + 0x5c], 0x683b
mov word [esp + 0x5e], 0x681a
xor eax, eax
cmp eax, 2
jae 0x412d69
movzx edx, word [esp + eax*2 + 0x5c]
mov ecx, eax
add ecx, 0x960f0c91
xor ecx, edx
add ecx, 0x4f879b77
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov word [esp + eax*2 + 0x5c], cx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412d33
mov al, byte [esp + 0xac]
mov byte [esp + 0x15c], al
mov word [esp + 0x212], 0x289c
mov word [esp + 0x214], 0x2882
mov word [esp + 0x216], 0x2899
mov word [esp + 0x218], 0x288a
mov word [esp + 0x21a], 0x2882
mov word [esp + 0x21c], 0x2882
mov word [esp + 0x21e], 0x289a
mov word [esp + 0x220], 0x2896
mov word [esp + 0x222], 0x2898
mov word [esp + 0x224], 0x2899
mov word [esp + 0x226], 0x28d6
mov word [esp + 0x228], 0x28da
mov word [esp + 0x22a], 0x289d
mov word [esp + 0x22c], 0x2881
mov word [esp + 0x22e], 0x289f
mov word [esp + 0x230], 0x2898
mov word [esp + 0x232], 0x28dc
mov word [esp + 0x234], 0x289f
mov word [esp + 0x236], 0x2887
mov word [esp + 0x238], 0x288f
mov word [esp + 0x23a], 0x28a1
mov word [esp + 0x23c], 0x28b2
mov word [esp + 0x23e], 0x28b1
mov word [esp + 0x240], 0x28e3
mov word [esp + 0x242], 0x28e9
mov word [esp + 0x244], 0x28a3
mov word [esp + 0x246], 0x28e6
mov word [esp + 0x248], 0x28e5
mov word [esp + 0x24a], 0x2808
xor eax, eax
cmp eax, 0x1d
jae 0x412eea
movzx ecx, word [esp + eax*2 + 0x212]
mov edx, eax
shl edx, 1
and edx, 0xb20bf498
mov edi, eax
xor edi, 0xd905fa4c
add edi, edx
mov edx, edi
or edx, ecx
mov esi, edi
xor esi, 0xffffffff
or esi, ecx
add edi, esi
sub edx, edi
mov edi, dword [esp + 0x2c]
add dx, 0x2d9f
mov word [esp + eax*2 + 0x212], dx
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x412e9b
lea eax, [esp + 0x212]
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409b30
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409b30
lea ecx, [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409b30
mov esi, dword [esp + 0x28]
mov ecx, 2
jmp 0x412f28
xor eax, eax
cmp eax, 0
je 0x413169
jmp 0x413915
call fcn.00413d80
xor edi, 1
mov ecx, dword [esp + 0x58]
mov eax, ecx
xor eax, 2
or edi, eax
sete al
mov dword [esp + 0x34], 0
test al, 1
mov edi, 0
jne 0x412f64
jmp 0x413169
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00413940
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412f8d
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov edx, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x1ac], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a850
mov ecx, dword [esp + 0x1b8]
xor ecx, 0xffffffff
sub ecx, 0xffffffff
mov eax, 0x18
sub eax, ecx
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412fe7
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov edi, eax
mov al, byte [esp + 0xa8]
mov byte [esp + 0x160], al
mov word [esp + 0x1e0], 0x6b63
mov word [esp + 0x1e2], 0x6b6b
mov word [esp + 0x1e4], 0x6b62
mov word [esp + 0x1e6], 0x6b13
mov word [esp + 0x1e8], 0x6b65
mov word [esp + 0x1ea], 0x6b7b
mov word [esp + 0x1ec], 0x6b71
mov word [esp + 0x1ee], 0x6b0f
mov word [esp + 0x1f0], 0x6b77
mov word [esp + 0x1f2], 0x6b70
mov word [esp + 0x1f4], 0x6bcd
mov word [esp + 0x1f6], 0x6b33
mov word [esp + 0x1f8], 0x6b0a
mov word [esp + 0x1fa], 0x6b68
mov word [esp + 0x1fc], 0x6b04
mov word [esp + 0x1fe], 0x6b01
mov word [esp + 0x200], 0x6bc3
mov word [esp + 0x202], 0x6b06
mov word [esp + 0x204], 0x6b6c
mov word [esp + 0x206], 0x6b76
mov word [esp + 0x208], 0x6b06
mov word [esp + 0x20a], 0x6b0b
mov word [esp + 0x20c], 0x6b0a
mov word [esp + 0x20e], 0x6bba
mov word [esp + 0x210], 0x6b9b
xor eax, eax
cmp eax, 0x19
jae 0x413125
mov cx, word [esp + eax*2 + 0x1e0]
mov dx, ax
add dx, 0x9eab
xor dx, cx
add dx, 0xaa8
mov word [esp + eax*2 + 0x1e0], dx
add eax, 1
jmp 0x4130fb
lea eax, [esp + 0x1e0]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00409b30
mov dword [esp], eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 4], eax
call fcn.00409b30
mov eax, dword [esp + 0x1ac]
mov dword [esp], eax
call fcn.00407fb0
jmp 0x41315c
mov dword [esp + 0x34], edi
xor edi, edi
mov ecx, 2
jmp 0x413169
test ecx, ecx
mov dword [esp + 0x2c], edi
je 0x41318e
jmp 0x413173
mov eax, ecx
sub eax, 1
je 0x413337
jmp 0x413180
sub ecx, 2
je 0x413657
jmp 0x4138e0
test byte [esp + 0x4b], 1
jne 0x41319a
jmp 0x413337
lea edi, [esp + 0x328]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x328], 0x44
mov eax, dword [0x4442a0]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00439000
test eax, eax
setne cl
xor ecx, ecx
lea edx, [esp + 0x2d4]
mov dword [esp], edi
mov ecx, dword [esp + 0x34]
mov dword [esp + 4], ecx
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
lea ecx, [esp + 0x328]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
je 0x413332
mov eax, dword [esp + 0x2d4]
mov dword [esp + 0x294], eax
mov al, byte [esp + 0x10c]
mov byte [esp + 0x174], al
mov word [esp + 0x88], 0x7338
mov word [esp + 0x8a], 0x7327
xor eax, eax
cmp eax, 2
jae 0x4132b4
movzx edx, word [esp + eax*2 + 0x88]
mov ecx, 0x46b0
sub ecx, eax
and ecx, edx
mov esi, 0x46b0
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov esi, dword [esp + 0x28]
add cx, 0x3588
mov word [esp + eax*2 + 0x88], cx
mov ecx, eax
shl ecx, 1
mov edx, eax
shl edx, 1
add eax, 1
sub eax, edx
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
jmp 0x413266
mov ecx, dword [esp + 0x88]
xor edi, edi
cmp edi, dword [0x4452ac]
jb 0x4132c7
jmp 0x41332c
mov eax, dword [0x4452b0]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4132dd
jmp 0x413320
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413320
mov dword [esp + 0x26c], ecx
mov ecx, dword [0x4452b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x294]
mov dword [esp + 0xc], eax
mov byte [esp + 0x43], dl
call fcn.00437870
mov dl, byte [esp + 0x43]
mov ecx, dword [esp + 0x26c]
test dl, 1
je 0x413327
jmp 0x41332c
add edi, 1
jmp 0x4132bd
mov edi, dword [esp + 0x2c]
jmp 0x413332
jmp 0x4138e0
mov eax, dword [0x4442a0]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.00439000
mov edi, eax
cmp edi, 0
setne al
mov byte [esp + 0x42], al
test al, 1
jne 0x41335c
call fcn.00413d80
call fcn.00413d80
test byte [esp + 0x42], 1
jne 0x41336f
xor edi, edi
mov eax, dword [esp + 0x30]
xor ecx, ecx
lea ecx, [0x4200f0]
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
cmp eax, 0
mov edi, dword [esp + 0x2c]
je 0x413652
mov cl, byte [esp + 0xa4]
mov byte [esp + 0x164], cl
mov word [esp + 0x186], 0xfb67
mov word [esp + 0x188], 0x9494
mov word [esp + 0x18a], 0xb156
mov word [esp + 0x18c], 0xb155
xor ecx, ecx
cmp ecx, 4
jae 0x41343a
movzx esi, word [esp + ecx*2 + 0x186]
mov edx, ecx
add edx, 0xc8275d9f
xor edx, esi
mov esi, edx
xor esi, 0x413aecf8
mov edi, edx
or edi, 0xbec51307
and edi, esi
or edx, 0xbec51307
add edx, edi
mov esi, edx
shl esi, 1
and esi, 2
xor edx, 1
add edx, esi
mov esi, dword [esp + 0x28]
mov word [esp + ecx*2 + 0x186], dx
add ecx, 1
jmp 0x4133ec
mov ecx, dword [esp + 0x186]
mov edx, dword [esp + 0x18a]
mov dword [esp + 0x2bc], edx
mov dword [esp + 0x2b8], ecx
mov cl, byte [esp + 0x168]
mov byte [esp + 0x16c], cl
mov word [esp + 0x90], 0x7338
mov word [esp + 0x92], 0x7327
xor ecx, ecx
cmp ecx, 2
jae 0x4134c8
movzx esi, word [esp + ecx*2 + 0x90]
mov edx, 0x46b0
sub edx, ecx
and edx, esi
mov edi, 0x46b0
sub edi, ecx
or edi, esi
xor edi, 0xffffffff
or edx, edi
add dx, 0x3588
mov word [esp + ecx*2 + 0x90], dx
mov edx, ecx
shl edx, 1
mov esi, ecx
shl esi, 1
add ecx, 1
sub ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
xor ecx, edx
add ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x41347a
mov ecx, dword [esp + 0x90]
mov dword [esp + 0x280], ecx
xor edi, edi
cmp edi, dword [0x4452ac]
jb 0x4134e2
jmp 0x413560
mov ecx, dword [0x4452b0]
cmp dword [ecx + edi*8], 0xa67d73aa
sete dl
mov byte [esp + 0x48], dl
test dl, 1
jne 0x4134fd
jmp 0x41354f
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, dword [esp + 0x280]
je 0x41354f
mov edx, dword [0x4452b4]
xor esi, esi
lea esi, [esp + 0x2b8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], esi
mov esi, dword [esp + 0x28]
mov dword [esp + 0xa0], eax
call fcn.00437870
mov eax, dword [esp + 0xa0]
test byte [esp + 0x48], 1
je 0x413558
jmp 0x413560
add edi, 1
jmp 0x4134d8
mov cl, byte [esp + 0x108]
mov byte [esp + 0x178], cl
mov word [esp + 0x84], 0x7338
mov word [esp + 0x86], 0x7327
xor ecx, ecx
cmp ecx, 2
jae 0x4135d2
movzx esi, word [esp + ecx*2 + 0x84]
mov edx, 0x46b0
sub edx, ecx
and edx, esi
mov edi, 0x46b0
sub edi, ecx
or edi, esi
xor edi, 0xffffffff
or edx, edi
add dx, 0x3588
mov word [esp + ecx*2 + 0x84], dx
mov edx, ecx
shl edx, 1
mov esi, ecx
shl esi, 1
add ecx, 1
sub ecx, esi
mov esi, ecx
and esi, edx
shl esi, 1
xor ecx, edx
add ecx, esi
mov esi, dword [esp + 0x28]
jmp 0x413584
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x270], ecx
xor edi, edi
cmp edi, dword [0x4452ac]
jb 0x4135ec
jmp 0x41364e
mov ecx, dword [0x4452b0]
cmp dword [ecx + edi*8], 0xb430e561
sete dl
mov byte [esp + 0x44], dl
test dl, 1
jne 0x413607
jmp 0x413640
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, dword [esp + 0x270]
je 0x413640
mov edx, dword [0x4452b4]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov dword [esp + 0xa0], eax
call fcn.00437870
mov eax, dword [esp + 0xa0]
test byte [esp + 0x44], 1
je 0x413649
jmp 0x41364e
add edi, 1
jmp 0x4135e2
mov edi, dword [esp + 0x2c]
jmp 0x4138e0
lea edi, [esp + 0x2e4]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2e4], 0x44
mov eax, dword [0x4442a0]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00439000
test eax, eax
setne cl
mov edi, dword [esp + 0x34]
xor ecx, ecx
lea ecx, [esp + 0x2e4]
lea edx, [esp + 0x2c4]
mov dword [esp], 0
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
mov edi, dword [esp + 0x2c]
test al, 1
jne 0x4136fb
jmp 0x4138e0
mov eax, dword [esp + 0x2c8]
mov dword [esp + 0x29c], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x17c], al
mov word [esp + 0x80], 0x7338
mov word [esp + 0x82], 0x7327
xor eax, eax
cmp eax, 2
jae 0x41377b
movzx edx, word [esp + eax*2 + 0x80]
mov ecx, 0x46b0
sub ecx, eax
and ecx, edx
mov esi, 0x46b0
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov esi, dword [esp + 0x28]
add cx, 0x3588
mov word [esp + eax*2 + 0x80], cx
mov ecx, eax
shl ecx, 1
mov edx, eax
shl edx, 1
add eax, 1
sub eax, edx
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
jmp 0x41372d
mov ecx, dword [esp + 0x80]
xor edi, edi
cmp edi, dword [0x4452ac]
jb 0x41378e
jmp 0x4137f3
mov eax, dword [0x4452b0]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4137a4
jmp 0x4137e7
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4137e7
mov dword [esp + 0x278], ecx
mov ecx, dword [0x4452b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x29c]
mov dword [esp + 0xc], eax
mov byte [esp + 0x46], dl
call fcn.00437870
mov dl, byte [esp + 0x46]
mov ecx, dword [esp + 0x278]
test dl, 1
je 0x4137ee
jmp 0x4137f3
add edi, 1
jmp 0x413784
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x298], eax
mov al, byte [esp + 0x100]
mov byte [esp + 0x180], al
mov word [esp + 0x7c], 0x7338
mov word [esp + 0x7e], 0x7327
xor eax, eax
cmp eax, 2
jae 0x413867
movzx edx, word [esp + eax*2 + 0x7c]
mov ecx, 0x46b0
sub ecx, eax
and ecx, edx
mov esi, 0x46b0
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov esi, dword [esp + 0x28]
add cx, 0x3588
mov word [esp + eax*2 + 0x7c], cx
mov ecx, eax
shl ecx, 1
mov edx, eax
shl edx, 1
add eax, 1
sub eax, edx
mov edx, eax
and edx, ecx
shl edx, 1
xor eax, ecx
add eax, edx
jmp 0x41381f
mov ecx, dword [esp + 0x7c]
xor edi, edi
cmp edi, dword [0x4452ac]
jb 0x413877
jmp 0x4138dc
mov eax, dword [0x4452b0]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x41388d
jmp 0x4138d0
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4138d0
mov dword [esp + 0x274], ecx
mov ecx, dword [0x4452b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x298]
mov dword [esp + 0xc], eax
mov byte [esp + 0x45], dl
call fcn.00437870
mov dl, byte [esp + 0x45]
mov ecx, dword [esp + 0x274]
test dl, 1
je 0x4138d7
jmp 0x4138dc
add edi, 1
jmp 0x41386d
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00435c10
cmp edi, 0
je 0x4138fb
mov dword [esp], edi
call fcn.00407fb0
jmp 0x4138fb
mov ecx, dword [esp + 0x34]
cmp ecx, 0
sete al
test al, 1
jne 0x413913
jmp 0x41390b
mov dword [esp], ecx
call fcn.00407fb0
jmp 0x413915
mov eax, ebx
and eax, 1
shl eax, 1
xor ebx, 1
add ebx, eax
jmp 0x411c0c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret