Function at 0x411210
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, 0x800
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401b60
mov esi, eax
cmp esi, 0
jne 0x411238
xor eax, eax
jmp 0x412f79
xor ebx, ebx
jmp 0x41123c
mov dword [esp], esi
call fcn.00401f30
cmp ebx, eax
jb 0x41124f
mov al, 1
jmp 0x412f79
mov dword [esp], esi
mov dword [esp + 4], ebx
call fcn.00401f40
mov edi, eax
mov al, byte [esp + 0xf8]
mov byte [esp + 0x110], al
mov word [esp + 0x4a], 0xd401
movzx eax, word [esp + 0x4a]
mov ecx, eax
and ecx, 0x74d93d14
shl ecx, 1
add eax, 0x74d93d14
sub eax, ecx
add ax, 0x1760
mov word [esp + 0x4a], ax
lea eax, [esp + 0x4a]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401e30
cmp eax, 0
setne al
jmp 0x4112b1
test al, 1
jne 0x4112ba
jmp 0x4113a4
mov al, byte [esp + 0xf4]
mov byte [esp + 0x114], al
mov word [esp + 0x7c], 0x3454
mov word [esp + 0x7e], 0xc033
xor eax, eax
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x50], edi
cmp eax, 2
jae 0x41132f
movzx ebx, word [esp + eax*2 + 0x7c]
mov edx, eax
add edx, 0xe3c88922
mov ecx, 0x76dd
sub ecx, eax
mov edi, 0x76dd
sub edi, eax
and ecx, edi
mov edi, dword [esp + 0x50]
or edx, ebx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, dword [esp + 0x2c]
and ecx, edx
add ecx, 0xe1bbb6ef
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov word [esp + eax*2 + 0x7c], cx
add eax, 1
jmp 0x4112e0
lea eax, [esp + 0x7c]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e30
cmp eax, 0
setne al
test al, 1
jne 0x411353
jmp 0x4113a4
mov al, byte [esp + 0xf0]
mov byte [esp + 0x118], al
mov word [esp + 0x48], 0x431f
mov ax, word [esp + 0x48]
xor ax, 0xf6aa
add ax, 0x4ab0
mov word [esp + 0x48], ax
lea eax, [esp + 0x48]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e30
cmp eax, 0
setne al
and al, 0xff
or al, 0
xor al, 0xff
test al, 1
jne 0x4113a8
jmp 0x4113ad
jmp 0x4113a6
jmp 0x4113a8
jmp 0x412f71
mov al, byte [esp + 0xec]
mov byte [esp + 0x11c], al
mov word [esp + 0x46], 0x8372
movzx ecx, word [esp + 0x46]
mov eax, ecx
or eax, 0x798e121f
mov edx, ecx
add edx, 1
xor ecx, 0xffffffff
or ecx, 0x798e121f
add ecx, edx
sub eax, ecx
add ax, 0x6f08
mov word [esp + 0x46], ax
lea eax, [esp + 0x46]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x288], eax
mov al, byte [esp + 0xe8]
mov byte [esp + 0x120], al
mov word [esp + 0x78], 0x484f
mov word [esp + 0x7a], 0xfc2a
xor eax, eax
cmp eax, 2
jae 0x411469
movzx edx, word [esp + eax*2 + 0x78]
mov ecx, eax
add ecx, 0x3e735521
mov ebx, 0xaade
sub ebx, eax
and ebx, 0xcc6e
mov edi, ecx
and edi, 0x3391
or ebx, edi
mov edi, dword [esp + 0x50]
xor ebx, 0x3391
and ebx, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, ebx
add cx, 0x56f8
mov word [esp + eax*2 + 0x78], cx
add eax, 1
jmp 0x41141e
mov dword [esp + 0x30], esi
lea eax, [esp + 0x78]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401970
fnstcw word [esp + 0x56]
movzx eax, word [esp + 0x56]
or eax, 0xc00
mov word [esp + 0x180], ax
fldcw word [esp + 0x180]
fistp dword [esp + 0x2a0]
fldcw word [esp + 0x56]
mov eax, dword [esp + 0x2a0]
mov dword [esp + 0x5c], eax
mov al, byte [esp + 0xe4]
mov byte [esp + 0x124], al
mov word [esp + 0x44], 0x443a
movzx eax, word [esp + 0x44]
mov ecx, eax
xor ecx, 0x1b4b09a7
mov edx, 0xda584d38
sub edx, ecx
or edx, 1
lea edi, [ecx + edx + 0x25a7b2c8]
mov esi, edi
and esi, 2
mov edx, esi
xor edx, 2
mov ebx, edi
and ebx, 0xfffd
imul edx, ebx
or edi, 2
imul edi, esi
add edx, edi
mov edi, dword [esp + 0x50]
add eax, eax
and eax, 2
sub ecx, eax
lea eax, [ecx + edx - 0x4d38]
mov word [esp + 0x44], ax
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp], edi
call fcn.00401970
fnstcw word [esp + 0x54]
movzx eax, word [esp + 0x54]
or eax, 0xc00
mov word [esp + 0x17e], ax
fldcw word [esp + 0x17e]
fistp dword [esp + 0x2a4]
fldcw word [esp + 0x54]
mov ebx, dword [esp + 0x2a4]
lea eax, [esp + 0x3fc]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], 0x400
mov eax, dword [esp + 0x288]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a570
lea eax, [esp + 0x3fc]
lea ecx, [esp + 0x3c]
lea edx, [esp + 0x1b0]
xor esi, esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040ad10
test al, 1
jne 0x4115bf
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
jmp 0x412f71
cmp ebx, 0
sete al
mov byte [esp + 0x4f], al
test al, 1
jne 0x4115d2
jmp 0x412595
mov al, byte [esp + 0xe0]
mov byte [esp + 0x128], al
mov word [esp + 0x42], 0xb3e0
movzx eax, word [esp + 0x42]
mov ecx, eax
or ecx, 0x6ab814ef
and eax, 0x14ef
xor eax, ecx
mov edx, eax
shl edx, 1
xor edx, 0xffffffff
mov ecx, eax
add ecx, edx
and eax, 0xa77f
xor eax, 0xa77f
mov edx, ecx
and edx, 0x5880
mov esi, ecx
xor esi, 0xa77f
add ecx, esi
sub ecx, edx
add ecx, eax
add cx, 1
mov word [esp + 0x42], cx
lea eax, [esp + 0x42]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00401870
mov ebx, eax
cmp ebx, 0
je 0x41185a
mov dword [esp], ebx
call fcn.00412f90
mov edi, eax
mov eax, edi
sub eax, 0xffffffff
mov ecx, 2
mov dword [esp + 0x244], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411676
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov esi, eax
xor eax, eax
mov dword [esp], esi
mov eax, dword [esp + 0x244]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.0040a570
xor eax, eax
lea eax, [esp + 0xdc]
mov dword [esp], 0
mov dword [esp + 0x58], esi
mov dword [esp + 4], esi
mov dword [esp + 0x28c], edi
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x4482dc]
sub esp, 0x18
mov dword [esp + 0x264], eax
mov al, byte [esp + 0xd8]
mov byte [esp + 0x12c], al
mov word [esp + 0x74], 0x16b1
mov word [esp + 0x76], 0xd693
xor edx, edx
cmp edx, 2
jae 0x41175e
movzx eax, word [esp + edx*2 + 0x74]
mov ecx, edx
shl ecx, 1
and ecx, 0x5ec00504
mov esi, edx
shl esi, 1
and esi, 0x5ec00504
add esi, 0xd09ffd7e
mov ebx, edx
sub ebx, esi
add ebx, ecx
mov esi, ebx
xor esi, 0xffffffff
shl esi, 1
add esi, ebx
mov ecx, 0xfffe
sub ecx, esi
mov edi, 0xfffe
sub edi, esi
or ecx, edi
and ecx, eax
or ebx, eax
xor ecx, ebx
add cx, 0xebf0
mov word [esp + edx*2 + 0x74], cx
add edx, 1
jmp 0x411706
mov eax, dword [esp + 0x74]
cmp dword [esp + 0x264], eax
mov esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
jne 0x41179b
jmp 0x411775
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00407fd0
mov eax, dword [esp + 0x3c]
jmp 0x411787
mov dword [esp], eax
call fcn.004383b0
xor edi, edi
mov eax, 4
jmp 0x411846
mov eax, dword [esp + 0xdc]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4117b8
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov edi, eax
mov eax, dword [0x4482dc]
mov ecx, dword [esp + 0xdc]
xor edx, edx
mov dword [esp], 0
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x28c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xdc]
mov dword [esp + 0x14], ecx
call eax
sub esp, 0x18
cmp eax, 0
jge 0x411834
jmp 0x411809
mov dword [esp], edi
call fcn.00407fd0
jmp 0x411813
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00407fd0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004383b0
jmp 0x41182d
mov eax, 4
jmp 0x411846
jmp 0x411836
mov eax, dword [esp + 0x58]
mov dword [esp], eax
call fcn.00407fd0
xor eax, eax
jmp 0x411846
cmp eax, 0
sete cl
test cl, 1
jne 0x411db7
jmp 0x411db9
mov ebx, dword [esp + 0x2c]
call fcn.00408610
and eax, 0xf
xor eax, 0x10
add eax, 0
mov esi, dword [esp + 0x30]
xor edx, edx
lea edi, [esp + 0x3bc]
jmp 0x41187b
cmp edx, eax
jb 0x411a12
mov word [edi], 0
mov al, byte [esp + 0xd0]
mov byte [esp + 0x134], al
mov word [esp + 0x1b6], 0x7014
mov word [esp + 0x1b8], 0x8fe6
mov word [esp + 0x1ba], 0x8ff6
mov word [esp + 0x1bc], 0x8fe9
mov word [esp + 0x1be], 0x8fe5
mov word [esp + 0x1c0], 0x7013
mov word [esp + 0x1c2], 0x8fdb
mov word [esp + 0x1c4], 0x6fc8
xor eax, eax
cmp eax, 8
jae 0x41193a
mov dx, word [esp + eax*2 + 0x1b6]
mov ebx, eax
add ebx, 0xff9
mov ecx, eax
add ecx, 0xff9
mov esi, eax
add esi, 0xff9
and ecx, esi
mov esi, dword [esp + 0x30]
and ecx, 0x8808
and ebx, 0x77f7
or ecx, ebx
mov ebx, dword [esp + 0x2c]
xor cx, dx
add cx, 0x8038
mov word [esp + eax*2 + 0x1b6], cx
add eax, 1
jmp 0x4118e8
lea eax, [esp + 0x35c]
lea ecx, [esp + 0x1b6]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409910
lea ecx, [esp + 0x3bc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409910
mov edi, eax
lea eax, [esp + 0x35c]
mov ecx, edi
xor ecx, eax
xor eax, 0xffffffff
and edi, eax
shl edi, 1
sub edi, ecx
sar edi, 1
xor eax, eax
lea eax, [esp + 0x35c]
lea ecx, [esp + 0xcc]
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 [0x4482dc]
sub esp, 0x18
mov cl, byte [esp + 0xc8]
mov byte [esp + 0x138], cl
mov word [esp + 0x6c], 0x89b
mov word [esp + 0x6e], 0xc8b9
xor ecx, ecx
cmp ecx, 2
jae 0x411a01
mov dx, word [esp + ecx*2 + 0x6c]
mov si, cx
add si, 0x9378
xor si, dx
add si, 0x6440
mov word [esp + ecx*2 + 0x6c], si
mov esi, dword [esp + 0x30]
add ecx, 1
jmp 0x4119d9
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jne 0x411afa
jmp 0x411b14
mov dword [esp + 0x270], edx
mov dword [esp + 0x284], eax
call fcn.00408610
mov dword [esp + 0x268], eax
mov al, byte [esp + 0xd4]
mov byte [esp + 0x130], al
mov word [esp + 0x70], 0xd33
mov word [esp + 0x72], 0xdc8
xor ecx, ecx
cmp ecx, 2
jae 0x411ac0
movzx eax, word [esp + ecx*2 + 0x70]
mov edx, ecx
add edx, 0x17f948af
mov ebx, edx
and ebx, eax
mov esi, ebx
and esi, 2
xor esi, 2
mov dword [esp + 0x26c], edi
mov edi, ebx
and edi, 0xfffd
imul edi, esi
mov esi, ebx
and esi, 2
or ebx, 2
imul ebx, esi
add ebx, edi
mov edi, dword [esp + 0x26c]
add edx, eax
add edx, 0x1fbacc81
mov eax, edx
sub eax, ebx
mov ebx, dword [esp + 0x2c]
mov esi, edx
and esi, 1
and edx, 1
xor eax, 1
add eax, 0xee06
or eax, edx
add eax, esi
mov esi, dword [esp + 0x30]
mov word [esp + ecx*2 + 0x70], ax
add ecx, 1
jmp 0x411a4a
mov eax, dword [esp + 0x268]
cdq
idiv dword [esp + 0x70]
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov ecx, edi
add ecx, 2
mov word [edi], ax
xor eax, eax
sub eax, dword [esp + 0x270]
add eax, 0xffffffff
xor edx, edx
sub edx, eax
mov edi, ecx
mov eax, dword [esp + 0x284]
jmp 0x41187b
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004383b0
jmp 0x411b08
xor edi, edi
mov eax, 4
jmp 0x411daa
mov eax, dword [esp + 0xcc]
sub eax, 0xfffffffc
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411b34
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov esi, dword [0x4482dc]
mov ecx, dword [esp + 0xcc]
xor edx, edx
lea edx, [esp + 0x35c]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xcc]
mov dword [esp + 0x14], eax
call esi
sub esp, 0x18
cmp eax, 0
jge 0x411ba4
mov esi, dword [esp + 0x30]
jmp 0x411b86
mov dword [esp], edi
call fcn.00407fd0
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004383b0
mov eax, 4
jmp 0x411daa
mov eax, dword [esp + 0x5c]
cmp eax, 0
mov esi, dword [esp + 0x30]
jne 0x411c50
mov al, byte [esp + 0xc4]
mov byte [esp + 0x13c], al
mov word [esp + 0x19e], 0x7aef
mov word [esp + 0x1a0], 0x7b37
mov word [esp + 0x1a2], 0x7b5b
mov word [esp + 0x1a4], 0x7b31
mov word [esp + 0x1a6], 0x7ad5
xor eax, eax
cmp eax, 5
jae 0x411c34
mov dx, word [esp + eax*2 + 0x19e]
movzx esi, dx
mov ecx, eax
add ecx, 0x70642a19
mov dword [esp + 0x34], edi
mov edi, ecx
and edi, esi
shl edi, 1
sub ecx, edi
mov edi, dword [esp + 0x34]
add cx, dx
add cx, 0xaf38
mov word [esp + eax*2 + 0x19e], cx
add eax, 1
jmp 0x411bf7
lea eax, [esp + 0x19e]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413360
mov esi, dword [esp + 0x30]
jmp 0x411da6
cmp eax, 1
jne 0x411d00
mov al, byte [esp + 0xc0]
mov byte [esp + 0x140], al
mov word [esp + 0x194], 0xe58
mov word [esp + 0x196], 0xe93
mov word [esp + 0x198], 0xe94
mov word [esp + 0x19a], 0xe95
mov word [esp + 0x19c], 0xe3a
xor eax, eax
cmp eax, 5
jae 0x411ce8
movzx edx, word [esp + eax*2 + 0x194]
mov ecx, eax
add ecx, 0xcaebfe06
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x1f9e
xor ecx, 0xfcf
add ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x194], cx
mov ecx, eax
add ecx, 1
mov edx, eax
xor edx, 0xffffffff
or edx, 1
or eax, 1
add edx, eax
add ecx, edx
mov eax, ecx
jmp 0x411c9b
lea eax, [esp + 0x194]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413360
jmp 0x411da6
cmp eax, 2
jne 0x411da6
mov al, byte [esp + 0xbc]
mov byte [esp + 0x144], al
mov word [esp + 0x18a], 0xb501
mov word [esp + 0x18c], 0xb5c0
mov word [esp + 0x18e], 0xb5c2
mov word [esp + 0x190], 0xb503
mov word [esp + 0x192], 0xb553
xor eax, eax
cmp eax, 5
jae 0x411d91
movzx edx, word [esp + eax*2 + 0x18a]
mov ecx, eax
add ecx, 0x283f8667
mov esi, ecx
and esi, edx
shl esi, 1
sub ecx, esi
mov esi, dword [esp + 0x30]
add ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x998e
xor ecx, 0xccc7
add ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x18a], cx
add eax, 1
jmp 0x411d4b
lea eax, [esp + 0x18a]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.00413360
jmp 0x411da6
xor eax, eax
jmp 0x411daa
cmp eax, 0
sete cl
test cl, 1
jne 0x411db7
jmp 0x411db9
xor eax, eax
cmp eax, 0
jne 0x412f71
lea eax, [esp + 0x1ac]
xor ecx, ecx
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.0043bc80
mov ecx, eax
cmp ecx, 0
jl 0x411f49
mov eax, dword [esp + 0x1b0]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x1ac]
xor esi, esi
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043c470
mov ecx, eax
mov eax, dword [esp + 0x1ac]
mov dword [esp + 0x280], eax
mov al, byte [esp + 0x10c]
mov byte [esp + 0x16c], al
mov word [esp + 0x90], 0x71a3
mov word [esp + 0x92], 0x71a2
xor eax, eax
mov dword [esp + 0x1a8], ecx
cmp eax, 2
jae 0x411eb7
movzx edx, word [esp + eax*2 + 0x90]
mov ecx, eax
add ecx, 0x627c
and ecx, edx
mov esi, 0x9d83
sub esi, eax
xor edx, 0xffffffff
and esi, edx
or ecx, esi
mov dx, 0xec1f
sub dx, cx
mov word [esp + eax*2 + 0x90], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
mov ecx, dword [esp + 0x1a8]
xor eax, 1
jmp 0x411e71
mov eax, dword [esp + 0x90]
mov dword [esp + 0x25c], eax
xor eax, eax
mov esi, dword [esp + 0x30]
cmp eax, dword [0x4482e0]
jb 0x411ed5
jmp 0x411f47
mov edx, dword [0x4482e4]
cmp dword [edx + eax*8], 0xb430e561
sete bl
test bl, 1
mov dword [esp + 0x248], eax
jne 0x411ef3
jmp 0x411f2c
mov eax, dword [edx + eax*8 + 4]
cmp eax, dword [esp + 0x25c]
je 0x411f2c
mov ecx, dword [0x4482e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x280]
mov dword [esp + 0xc], eax
call fcn.00439ac0
mov ecx, dword [esp + 0x1a8]
test bl, 1
je 0x411f37
mov ebx, dword [esp + 0x2c]
jmp 0x411f47
mov eax, dword [esp + 0x248]
add eax, 1
mov ebx, dword [esp + 0x2c]
jmp 0x411ecb
jmp 0x411f49
mov dword [esp + 0x34], edi
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov edi, ecx
call fcn.004383b0
mov dword [esp + 0x3c], 0
cmp edi, 0
jge 0x411f82
mov dword [esp + 0x38], 0
mov eax, 4
mov ecx, dword [esp + 0x5c]
mov edi, dword [esp + 0x34]
jmp 0x412587
mov ecx, dword [esp + 0x5c]
cmp ecx, 1
sete al
mov edi, dword [esp + 0x34]
jmp 0x411f92
test al, 1
jne 0x411f9b
jmp 0x41232a
mov al, byte [esp + 0xb8]
mov byte [esp + 0x148], al
mov word [esp + 0x68], 0x8dc1
mov word [esp + 0x6a], 0x1a58
xor eax, eax
cmp eax, 2
jae 0x411fdd
mov cx, word [esp + eax*2 + 0x68]
mov dx, ax
add dx, 0x6e9f
xor dx, cx
add dx, 0x8b08
mov word [esp + eax*2 + 0x68], dx
add eax, 1
jmp 0x411fb9
lea eax, [esp + 0x68]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov dword [esp + 0x9c], eax
mov al, byte [esp + 0xb4]
mov byte [esp + 0x14c], al
mov word [esp + 0x64], 0x7e92
mov word [esp + 0x66], 0xcc74
xor eax, eax
cmp eax, 2
jae 0x412087
movzx edx, word [esp + eax*2 + 0x64]
mov ecx, 0x1ad4
sub ecx, eax
and ecx, edx
mov esi, 0xf5aa1ad4
sub esi, eax
or esi, edx
xor esi, 0xffffffff
or ecx, esi
mov edx, ecx
and edx, 0xd6a5
mov esi, ecx
and esi, 2
xor esi, 2
mov edi, ecx
and edi, 0xd6a5
imul edi, esi
mov esi, ecx
and esi, 2
or edx, 2
imul edx, esi
add edx, edi
mov edi, dword [esp + 0x34]
xor ecx, 0xd6a7
add ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x64], cx
add eax, 0x73d03507
mov ecx, eax
and ecx, 0xa
or eax, 0x8c2fcafa
add eax, ecx
jmp 0x412016
lea eax, [esp + 0x64]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401870
mov esi, eax
mov dword [esp], edi
call fcn.004133b0
mov edi, eax
cmp dword [esp + 0x9c], 0
setne al
mov dword [esp + 0x98], 0
mov byte [esp + 0x4e], al
test al, 1
jne 0x4120c7
jmp 0x4120e0
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004080e0
add eax, 1
mov dword [esp + 0x98], eax
cmp esi, 0
setne cl
xor eax, eax
mov byte [esp + 0x41], cl
test cl, 1
jne 0x4120f3
jmp 0x412108
mov dword [esp], esi
call fcn.004080e0
sub eax, 0xab6a004f
add eax, 1
add eax, 0xab6a004f
mov dword [esp + 0x298], esi
mov esi, eax
xor eax, eax
sub eax, edi
mov ecx, 9
sub ecx, eax
add ecx, 0x60fd3b7b
add ecx, dword [esp + 0x98]
sub ecx, 0x60fd3b7b
xor edx, edx
sub edx, ecx
xor eax, eax
mov dword [esp + 0x294], esi
sub eax, esi
add edx, eax
xor eax, eax
sub eax, edx
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41215d
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xb0]
mov byte [esp + 0x150], al
mov word [esp + 0x1c6], 0x257a
mov word [esp + 0x1c8], 0x257c
mov word [esp + 0x1ca], 0x2564
mov word [esp + 0x1cc], 0x256f
mov word [esp + 0x1ce], 0x2560
mov word [esp + 0x1d0], 0x2561
mov word [esp + 0x1d2], 0x25bd
mov word [esp + 0x1d4], 0x25bd
mov word [esp + 0x1d6], 0x2590
xor eax, eax
mov esi, dword [esp + 0x34]
cmp eax, 9
jae 0x412247
movzx ecx, word [esp + eax*2 + 0x1c6]
mov edi, eax
add edi, 0x7a51fbc8
mov edx, 0x5ae0437
sub edx, eax
mov esi, 0x5ae0437
sub esi, eax
and edx, esi
and edx, 0x16fb5e5c
and edi, 0xe904a1a3
mov esi, ecx
xor esi, 0x5e5c
or edx, edi
xor ecx, 0x5e5c
mov edi, edx
and edi, ecx
or esi, edx
xor edi, esi
add di, 0x21c0
mov word [esp + eax*2 + 0x1c6], di
mov esi, dword [esp + 0x34]
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 1
xor edx, 0xffffffff
add eax, 2
add eax, edx
add eax, ecx
jmp 0x4121d7
lea eax, [esp + 0x1c6]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409910
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
mov dword [esp], ecx
mov dword [esp + 4], esi
call fcn.00409910
mov ecx, esi
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
mov esi, dword [esp + 0x30]
je 0x41229c
mov dword [esp], ecx
call fcn.00407fd0
jmp 0x41229c
test byte [esp + 0x4e], 1
jne 0x4122a9
mov al, byte [esp + 0x41]
jmp 0x4122e9
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
mov dword [esp], ebx
mov eax, dword [esp + 0x98]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a570
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esp + 0x2c]
mov al, byte [esp + 0x41]
test al, 1
jne 0x4122ef
jmp 0x412321
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x294]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x298]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a570
xor edi, edi
xor ecx, ecx
jmp 0x412583
mov dword [esp + 0x38], 0
cmp ecx, 2
je 0x41233c
jmp 0x412583
mov dword [esp], edi
call fcn.004133b0
add eax, 0x1d
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412360
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xac]
mov byte [esp + 0x154], al
mov word [esp + 0x60], 0x1d9d
mov word [esp + 0x62], 0x1df0
xor eax, eax
cmp eax, 2
jae 0x4123cb
movzx edx, word [esp + eax*2 + 0x60]
mov ecx, eax
add ecx, 0x3c7
mov esi, eax
add esi, 0x3c7
mov edi, eax
add edi, 0x3c7
and esi, edi
xor esi, 0xffffffff
mov edi, edx
and edi, esi
xor edx, 0xffffffff
and ecx, edx
or edi, ecx
add di, 0xe1c8
mov word [esp + eax*2 + 0x60], di
add eax, 1
jmp 0x41238a
mov al, byte [esp + 0xa8]
mov byte [esp + 0x158], al
mov word [esp + 0x20a], 0xca42
mov word [esp + 0x20c], 0xcabc
mov word [esp + 0x20e], 0xca43
mov word [esp + 0x210], 0xcab0
mov word [esp + 0x212], 0xca44
mov word [esp + 0x214], 0xca44
mov word [esp + 0x216], 0xcab0
mov word [esp + 0x218], 0xcabc
mov word [esp + 0x21a], 0xcab6
mov word [esp + 0x21c], 0xcab7
mov word [esp + 0x21e], 0xcafc
mov word [esp + 0x220], 0xcaf0
mov word [esp + 0x222], 0xcabb
mov word [esp + 0x224], 0xca47
mov word [esp + 0x226], 0xcaa5
mov word [esp + 0x228], 0xcaa2
mov word [esp + 0x22a], 0xcae2
mov word [esp + 0x22c], 0xcaa1
mov word [esp + 0x22e], 0xca5d
mov word [esp + 0x230], 0xca55
mov word [esp + 0x232], 0xcaa7
mov word [esp + 0x234], 0xca54
mov word [esp + 0x236], 0xca5b
mov word [esp + 0x238], 0xcae9
mov word [esp + 0x23a], 0xcae7
mov word [esp + 0x23c], 0xcaad
mov word [esp + 0x23e], 0xcaec
mov word [esp + 0x240], 0xcaef
mov word [esp + 0x242], 0xcace
xor eax, eax
mov edi, dword [esp + 0x34]
cmp eax, 0x1d
jae 0x412545
movzx edx, word [esp + eax*2 + 0x20a]
mov ecx, eax
add ecx, 0xacc2
mov edi, 0x533d
sub edi, eax
mov esi, 0x533d
sub esi, eax
and edi, esi
or ecx, edx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edi, dword [esp + 0x34]
add cx, 0x99f0
mov word [esp + eax*2 + 0x20a], cx
add eax, 1
jmp 0x412501
lea eax, [esp + 0x20a]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409910
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00409910
lea ecx, [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409910
mov esi, dword [esp + 0x30]
mov ecx, 2
jmp 0x412583
xor eax, eax
jmp 0x412587
cmp eax, 0
je 0x41280c
jmp 0x412f71
cmp ebx, 1
sete bl
mov esi, dword [esp + 0x30]
call fcn.004133d0
mov ecx, dword [esp + 0x5c]
mov eax, ecx
sub eax, 2
sete al
and bl, al
mov dword [esp + 0x38], 0
test bl, 1
mov edi, 0
mov ebx, dword [esp + 0x2c]
jne 0x4125cd
jmp 0x41280c
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.00412f90
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4125f6
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov edx, dword [esp + 0x3c]
xor ecx, ecx
mov dword [esp + 0x290], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a570
mov eax, dword [esp + 0x1b0]
add eax, 0x18
add eax, 0x2cc61ce8
add eax, 1
sub eax, 0x2cc61ce8
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412650
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fc0
mov dword [esp + 0x38], eax
mov al, byte [esp + 0xa4]
mov byte [esp + 0x15c], al
mov word [esp + 0x1d8], 0xf7a2
mov word [esp + 0x1da], 0xf75c
mov word [esp + 0x1dc], 0xf7a3
mov word [esp + 0x1de], 0xf750
mov word [esp + 0x1e0], 0xf7a4
mov word [esp + 0x1e2], 0xf7a4
mov word [esp + 0x1e4], 0xf750
mov word [esp + 0x1e6], 0xf75c
mov word [esp + 0x1e8], 0xf756
mov word [esp + 0x1ea], 0xf757
mov word [esp + 0x1ec], 0xf71c
mov word [esp + 0x1ee], 0xf710
mov word [esp + 0x1f0], 0xf75b
mov word [esp + 0x1f2], 0xf7a7
mov word [esp + 0x1f4], 0xf745
mov word [esp + 0x1f6], 0xf742
mov word [esp + 0x1f8], 0xf702
mov word [esp + 0x1fa], 0xf741
mov word [esp + 0x1fc], 0xf7bd
mov word [esp + 0x1fe], 0xf7b5
mov word [esp + 0x200], 0xf747
mov word [esp + 0x202], 0xf7b4
mov word [esp + 0x204], 0xf7bb
mov word [esp + 0x206], 0xf709
mov word [esp + 0x208], 0xf72a
xor eax, eax
cmp eax, 0x19
jae 0x4127d1
movzx ecx, word [esp + eax*2 + 0x1d8]
mov esi, eax
xor esi, 0x8caa39dd
mov edx, eax
or edx, 0x7355c622
and edx, esi
mov esi, edx
and esi, 0xfffffffd
mov edi, eax
and edi, 2
xor edi, 2
imul edi, esi
mov esi, eax
and esi, 2
or edx, 2
imul edx, esi
mov esi, dword [esp + 0x30]
add edx, edi
mov edi, eax
xor edi, 0x7355c622
add edi, edx
xor edi, ecx
mov ecx, edi
shl ecx, 1
and ecx, 0x9dde
xor edi, 0x3110
sub ecx, edi
mov word [esp + eax*2 + 0x1d8], cx
add eax, 1
jmp 0x412766
lea eax, [esp + 0x1d8]
mov ecx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00409910
mov dword [esp], eax
mov edi, dword [esp + 0x290]
mov dword [esp + 4], edi
call fcn.00409910
mov dword [esp], edi
call fcn.00407fd0
xor edi, edi
mov ecx, 2
jmp 0x41280c
test ecx, ecx
je 0x41282d
jmp 0x412812
mov eax, ecx
sub eax, 1
je 0x4129d8
jmp 0x41281f
sub ecx, 2
je 0x412ca6
jmp 0x412f33
test byte [esp + 0x4f], 1
jne 0x412839
jmp 0x4129d8
mov dword [esp + 0x34], edi
call fcn.004133d0
lea edi, [esp + 0x318]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x318], 0x44
mov eax, dword [0x4472d4]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043b790
test eax, eax
setne cl
xor ecx, ecx
lea edx, [esp + 0x2c4]
mov edi, dword [esp + 0x34]
mov dword [esp], edi
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], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
lea ecx, [esp + 0x318]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
jne 0x4128e2
jmp 0x4129d3
mov eax, dword [esp + 0x2c4]
mov dword [esp + 0x274], eax
mov al, byte [esp + 0x108]
mov byte [esp + 0x170], al
mov word [esp + 0x8c], 0x71a3
mov word [esp + 0x8e], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x412957
movzx edx, word [esp + eax*2 + 0x8c]
mov ecx, eax
add ecx, 0x627c
and ecx, edx
mov esi, 0x9d83
sub esi, eax
xor edx, 0xffffffff
and esi, edx
or ecx, esi
mov esi, dword [esp + 0x30]
mov dx, 0xec1f
sub dx, cx
mov word [esp + eax*2 + 0x8c], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412914
mov ecx, dword [esp + 0x8c]
xor edi, edi
cmp edi, dword [0x4482e0]
jb 0x41296a
jmp 0x4129cf
mov eax, dword [0x4482e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x412980
jmp 0x4129bb
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4129bb
mov dword [esp + 0x24c], ecx
mov ecx, dword [0x4482e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x274]
mov dword [esp + 0xc], eax
call fcn.00439ac0
mov ecx, dword [esp + 0x24c]
test bl, 1
je 0x4129c6
mov ebx, dword [esp + 0x2c]
jmp 0x4129cf
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412960
mov edi, dword [esp + 0x34]
jmp 0x412f33
call fcn.004133d0
mov eax, dword [0x4472d4]
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043b790
test eax, eax
setne cl
mov ecx, dword [esp + 0x3c]
xor edx, edx
lea edx, [0x4214f0]
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 0x412a3f
jmp 0x412ca1
mov cl, byte [esp + 0xa0]
mov byte [esp + 0x160], cl
mov word [esp + 0x182], 0xdf74
mov word [esp + 0x184], 0x3d09
mov word [esp + 0x186], 0x1949
mov word [esp + 0x188], 0x1948
xor ecx, ecx
cmp ecx, 4
jae 0x412aa1
mov dx, word [esp + ecx*2 + 0x182]
mov si, cx
add si, 0x27d4
xor si, dx
add si, 0xc160
mov word [esp + ecx*2 + 0x182], si
add ecx, 1
jmp 0x412a77
mov dword [esp + 0x34], edi
mov ecx, dword [esp + 0x182]
mov edx, dword [esp + 0x186]
mov dword [esp + 0x2ac], edx
mov dword [esp + 0x2a8], ecx
mov cl, byte [esp + 0x164]
mov byte [esp + 0x168], cl
mov word [esp + 0x94], 0x71a3
mov word [esp + 0x96], 0x71a2
xor ecx, ecx
cmp ecx, 2
jae 0x412b24
movzx esi, word [esp + ecx*2 + 0x94]
mov edx, ecx
add edx, 0x627c
and edx, esi
mov edi, 0x9d83
sub edi, ecx
xor esi, 0xffffffff
and edi, esi
or edx, edi
mov si, 0xec1f
sub si, dx
mov word [esp + ecx*2 + 0x94], si
mov edx, ecx
shl edx, 1
or ecx, edx
xor ecx, 1
jmp 0x412ae5
mov esi, dword [esp + 0x94]
xor edi, edi
cmp edi, dword [0x4482e0]
jb 0x412b37
jmp 0x412bb4
mov ecx, dword [0x4482e4]
cmp dword [ecx + edi*8], 0xa67d73aa
sete dl
mov byte [esp + 0x4d], dl
test dl, 1
jne 0x412b52
jmp 0x412ba3
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, esi
je 0x412ba3
mov dword [esp + 0x260], esi
mov edx, dword [0x4482e8]
xor esi, esi
lea esi, [esp + 0x2a8]
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 ebx, eax
call fcn.00439ac0
mov esi, dword [esp + 0x260]
mov eax, ebx
mov ebx, dword [esp + 0x2c]
test byte [esp + 0x4d], 1
je 0x412bac
jmp 0x412bb4
add edi, 1
jmp 0x412b2d
mov cl, byte [esp + 0x104]
mov byte [esp + 0x174], cl
mov word [esp + 0x88], 0x71a3
mov word [esp + 0x8a], 0x71a2
xor ecx, ecx
cmp ecx, 2
jae 0x412c17
movzx esi, word [esp + ecx*2 + 0x88]
mov edx, ecx
add edx, 0x627c
and edx, esi
mov edi, 0x9d83
sub edi, ecx
xor esi, 0xffffffff
and edi, esi
or edx, edi
mov si, 0xec1f
sub si, dx
mov word [esp + ecx*2 + 0x88], si
mov edx, ecx
shl edx, 1
or ecx, edx
xor ecx, 1
jmp 0x412bd8
mov edx, dword [esp + 0x88]
xor edi, edi
mov esi, dword [esp + 0x30]
cmp edi, dword [0x4482e0]
jb 0x412c2e
jmp 0x412c9b
mov ecx, dword [0x4482e4]
cmp dword [ecx + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x412c45
jmp 0x412c87
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, edx
je 0x412c87
mov dword [esp + 0x250], edx
mov edx, dword [0x4482e8]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov dword [esp + 0xc], eax
mov dword [esp + 0x29c], eax
call fcn.00439ac0
mov edx, dword [esp + 0x250]
mov eax, dword [esp + 0x29c]
test bl, 1
je 0x412c92
mov ebx, dword [esp + 0x2c]
jmp 0x412c9b
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412c24
mov edi, dword [esp + 0x34]
jmp 0x412ca1
jmp 0x412f33
mov dword [esp + 0x34], edi
call fcn.004133d0
lea edi, [esp + 0x2d4]
xor eax, eax
mov ecx, 0x11
rep stosd dword es:[edi], eax
mov dword [esp + 0x2d4], 0x44
mov eax, dword [0x4472d4]
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043b790
test eax, eax
setne cl
xor ecx, ecx
lea ecx, [esp + 0x2d4]
lea edx, [esp + 0x2b4]
mov dword [esp], 0
mov edi, dword [esp + 0x38]
mov dword [esp + 4], edi
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call eax
sub esp, 0x28
cmp eax, 0
setne al
test al, 1
mov edi, dword [esp + 0x34]
jne 0x412d53
jmp 0x412f31
mov eax, dword [esp + 0x2b8]
mov dword [esp + 0x27c], eax
mov al, byte [esp + 0x100]
mov byte [esp + 0x178], al
mov word [esp + 0x84], 0x71a3
mov word [esp + 0x86], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x412dc8
movzx edx, word [esp + eax*2 + 0x84]
mov ecx, eax
add ecx, 0x627c
and ecx, edx
mov esi, 0x9d83
sub esi, eax
xor edx, 0xffffffff
and esi, edx
or ecx, esi
mov esi, dword [esp + 0x30]
mov dx, 0xec1f
sub dx, cx
mov word [esp + eax*2 + 0x84], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412d85
mov ecx, dword [esp + 0x84]
xor edi, edi
cmp edi, dword [0x4482e0]
jb 0x412ddb
jmp 0x412e40
mov eax, dword [0x4482e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x412df1
jmp 0x412e2c
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412e2c
mov dword [esp + 0x258], ecx
mov ecx, dword [0x4482e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x27c]
mov dword [esp + 0xc], eax
call fcn.00439ac0
mov ecx, dword [esp + 0x258]
test bl, 1
je 0x412e37
mov ebx, dword [esp + 0x2c]
jmp 0x412e40
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412dd1
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x278], eax
mov al, byte [esp + 0xfc]
mov byte [esp + 0x17c], al
mov word [esp + 0x80], 0x71a3
mov word [esp + 0x82], 0x71a2
xor eax, eax
cmp eax, 2
jae 0x412eb5
movzx edx, word [esp + eax*2 + 0x80]
mov ecx, eax
add ecx, 0x627c
and ecx, edx
mov esi, 0x9d83
sub esi, eax
xor edx, 0xffffffff
and esi, edx
or ecx, esi
mov esi, dword [esp + 0x30]
mov dx, 0xec1f
sub dx, cx
mov word [esp + eax*2 + 0x80], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412e72
mov ecx, dword [esp + 0x80]
xor edi, edi
cmp edi, dword [0x4482e0]
jb 0x412ec8
jmp 0x412f2d
mov eax, dword [0x4482e4]
cmp dword [eax + edi*8], 0xb430e561
sete bl
test bl, 1
jne 0x412ede
jmp 0x412f19
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412f19
mov dword [esp + 0x254], ecx
mov ecx, dword [0x4482e8]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0x278]
mov dword [esp + 0xc], eax
call fcn.00439ac0
mov ecx, dword [esp + 0x254]
test bl, 1
je 0x412f24
mov ebx, dword [esp + 0x2c]
jmp 0x412f2d
add edi, 1
mov ebx, dword [esp + 0x2c]
jmp 0x412ebe
mov edi, dword [esp + 0x34]
jmp 0x412f33
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
call fcn.004383b0
cmp edi, 0
sete al
test al, 1
jne 0x412f55
jmp 0x412f4b
mov dword [esp], edi
call fcn.00407fd0
jmp 0x412f55
cmp dword [esp + 0x38], 0
sete al
test al, 1
jne 0x412f6f
jmp 0x412f63
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call fcn.00407fd0
jmp 0x412f71
add ebx, 1
jmp 0x41123c
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret