Function at 0x412880
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x240
mov esi, esp
mov edi, dword [ebp + 8]
call fcn.00414c60
push eax
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x22c], esp
push eax
mov dword [esi + 0x60], esp
push eax
mov dword [esi + 0x228], esp
push eax
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x224], esp
push eax
mov dword [esi + 0xbc], esp
push eax
mov dword [esi + 0x220], esp
push eax
mov dword [esi + 0xb8], esp
push eax
mov dword [esi + 0x21c], esp
push eax
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0x218], esp
sub esp, 0x400
mov dword [esi + 0x214], esp
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0xb4], esp
push eax
mov dword [esi + 0xb0], esp
push eax
mov dword [esi + 0x210], esp
push eax
mov dword [esi + 0xac], esp
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x20c], esp
sub esp, 0x40
mov dword [esi + 0x170], esp
push eax
mov dword [esi + 0xa4], esp
push eax
mov dword [esi + 0x208], esp
sub esp, 0x60
mov dword [esi + 0x16c], esp
sub esp, 0x10
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0x204], esp
push eax
mov dword [esi + 0x9c], esp
push eax
mov dword [esi + 0x98], esp
push eax
mov dword [esi + 0x200], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0x1fc], esp
sub esp, 0xc
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x1f8], esp
sub esp, 0xc
mov dword [esi + 0x90], esp
push eax
mov dword [esi + 0x1f4], esp
sub esp, 0xc
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x1f0], esp
push eax
mov dword [esi + 0x168], esp
push eax
mov dword [esi + 0x88], esp
push eax
mov dword [esi + 0x1ec], esp
push eax
mov dword [esi + 0x84], esp
push eax
mov dword [esi + 0x1e8], esp
sub esp, 0x14
mov dword [esi + 0x80], esp
push eax
mov dword [esi + 0x1e4], esp
push eax
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x1e0], esp
sub esp, 0x3c
mov dword [esi + 0x7c], esp
push eax
mov dword [esi + 0x1dc], esp
sub esp, 0x34
mov dword [esi + 0x78], esp
push eax
mov dword [esi + 0x1d8], esp
sub esp, 0x44
mov dword [esi + 0x164], esp
sub esp, 0x10
mov dword [esi + 0x160], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x15c], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x1d4], esp
sub esp, 0x44
mov dword [esi + 0x158], esp
sub esp, 0x10
mov dword [esi + 0x74], esp
sub esp, 4
mov dword [esp], edi
call fcn.00402770
add esp, 4
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x412a4c
jmp 0x412a53
xor eax, eax
jmp 0x4147d5
xor ebx, ebx
mov dword [esi + 4], edi
jmp 0x412a5a
sub esp, 4
mov dword [esp], edi
call fcn.00402b40
add esp, 4
cmp ebx, eax
jb 0x412a73
mov al, 1
jmp 0x4147d5
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], ebx
call fcn.00402b50
add esp, 8
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x22c]
mov al, byte [eax]
mov byte [esi + 0xd4], al
mov eax, dword [esi + 0x64]
mov byte [eax], 0xfa
mov byte [eax + 1], 0x60
xor eax, eax
mov dword [esi + 0xc], ebx
cmp eax, 2
jae 0x412ae4
mov ecx, dword [esi + 0x64]
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0xd7
or ecx, edx
mov edi, eax
add edi, 0xd8
mov ebx, 0x28
sub ebx, eax
or ebx, edx
add ebx, edi
mov edi, dword [esi + 4]
sub ecx, ebx
mov ebx, dword [esi + 0xc]
add cl, 0x48
mov edx, dword [esi + 0x64]
mov byte [edx + eax], cl
add eax, 1
jmp 0x412aa5
sub esp, 0xc
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x64]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00402a40
add esp, 0xc
cmp eax, 0
je 0x412c95
mov eax, dword [esi + 0x228]
mov al, byte [eax]
mov byte [esi + 0xd8], al
mov eax, dword [esi + 0x60]
mov byte [eax], 0x64
mov byte [eax + 1], 0x97
mov byte [eax + 2], 4
xor eax, eax
cmp eax, 3
jae 0x412ba5
mov ecx, dword [esi + 0x60]
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0x66eb292
mov ecx, eax
add ecx, 0x92
and ecx, edx
or edi, edx
xor ecx, edi
mov edi, ecx
xor edi, 0x33759490
mov edx, ecx
or edx, 0xcc8a6b6f
and edx, edi
mov ebx, edx
and ebx, 0xfd
mov edi, ecx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
xor ecx, 0x6f
add ecx, edx
add cl, 1
mov edx, dword [esi + 0x60]
mov byte [edx + eax], cl
mov edx, eax
add edx, 1
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 1
add ecx, edx
shl ecx, 1
xor eax, 1
add eax, ecx
jmp 0x412b2b
sub esp, 0xc
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x60]
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00402a40
add esp, 0xc
cmp eax, 0
setne al
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
test al, 1
jne 0x412bda
jmp 0x412c95
mov eax, dword [esi + 0x224]
mov al, byte [eax]
mov byte [esi + 0xdc], al
mov eax, dword [esi + 0x5c]
mov byte [eax], 0x43
mov byte [eax + 1], 0xe7
xor edx, edx
cmp edx, 2
jae 0x412c6a
mov eax, dword [esi + 0x5c]
movzx ebx, byte [eax + edx]
mov dword [esi + 0x188], ebx
mov eax, edx
add eax, 0x10a1756
xor ebx, 0xffffffff
mov ecx, eax
and ecx, ebx
mov ebx, ecx
shl ebx, 1
xor ebx, 0xffffffff
add ecx, ebx
mov ebx, 1
sub ebx, edx
and ebx, 3
mov edi, eax
and edi, 0xfc
or ebx, edi
xor ebx, 0xfc
mov edi, edx
shl edi, 1
add edi, 0xad
sub eax, edi
mov edi, dword [esi + 4]
or ebx, eax
and ebx, dword [esi + 0x188]
mov eax, ecx
shl eax, 1
xor eax, 0xffffffff
add ecx, eax
or ecx, ebx
mov ebx, dword [esi + 0xc]
add cl, 0x50
mov eax, dword [esi + 0x5c]
mov byte [eax + edx], cl
add edx, 1
jmp 0x412bf4
sub esp, 0xc
mov eax, dword [esi + 0x5c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00402a40
add esp, 0xc
test eax, eax
sete al
test al, 1
jne 0x412c95
jmp 0x412c9a
jmp 0x4147cd
mov eax, dword [esi + 0x220]
mov al, byte [eax]
mov byte [esi + 0xe0], al
mov eax, dword [esi + 0xbc]
mov byte [eax], 0x29
mov byte [eax + 1], 0x9d
xor eax, eax
cmp eax, 2
jae 0x412cd7
mov edi, dword [esi + 0xbc]
mov cl, byte [edi + eax]
mov dl, al
add dl, 0x7c
xor dl, cl
add dl, 0x20
mov byte [edi + eax], dl
add eax, 1
jmp 0x412cb7
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xbc]
mov dword [esp + 4], eax
call fcn.00402480
add esp, 8
mov dword [esi + 0x1c8], eax
mov eax, dword [esi + 0x21c]
mov al, byte [eax]
mov byte [esi + 0xe4], al
mov eax, dword [esi + 0xb8]
mov byte [eax], 0xc7
mov byte [eax + 1], 0xd6
mov byte [eax + 2], 0x23
xor eax, eax
cmp eax, 3
jae 0x412d39
mov edi, dword [esi + 0xb8]
mov cl, byte [edi + eax]
mov dl, al
add dl, 0x69
xor dl, cl
add dl, 0xb8
mov byte [edi + eax], dl
add eax, 1
jmp 0x412d19
sub esp, 8
mov eax, dword [esi + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00402580
add esp, 8
fnstcw word [esi + 0x46]
movzx eax, word [esi + 0x46]
or eax, 0xc00
mov word [esi + 0x14a], ax
fldcw word [esi + 0x14a]
fistp dword [esi + 0x234]
fldcw word [esi + 0x46]
mov ecx, dword [esi + 0x234]
mov eax, dword [esi + 0x218]
mov al, byte [eax]
mov byte [esi + 0xe8], al
mov eax, dword [esi + 0x58]
mov byte [eax], 0x70
mov byte [eax + 1], 0xd6
mov dword [esi + 0x48], ecx
xor eax, eax
jmp 0x412d9b
cmp eax, 2
jae 0x412de6
mov ecx, dword [esi + 0x58]
movzx ecx, byte [ecx + eax]
mov edx, eax
add edx, 0x451171d1
mov edi, 0x3aee8e2e
sub edi, eax
and edi, 0x3452b994
and edx, 0xcbad466b
sub edx, edi
mov edi, ecx
shl edi, 1
xor edi, 0xffffffff
add edi, ecx
mov ebx, edx
and ebx, edi
xor edx, 0xffffffff
and ecx, edx
or ebx, ecx
add bl, 0x18
mov ecx, dword [esi + 0x58]
mov byte [ecx + eax], bl
add eax, 1
jmp 0x412d9b
sub esp, 8
mov eax, dword [esi + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00402580
add esp, 8
fnstcw word [esi + 0x44]
movzx eax, word [esi + 0x44]
or eax, 0xc00
mov word [esi + 0x148], ax
fldcw word [esi + 0x148]
fistp dword [esi + 0x230]
fldcw word [esi + 0x44]
mov edi, dword [esi + 0x230]
xor eax, eax
sub esp, 0x10
mov ebx, dword [esi + 0x214]
mov dword [esp], ebx
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x1c8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b270
add esp, 0x10
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov eax, dword [esi + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esi + 0xb4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ba60
add esp, 0x10
test al, 1
jne 0x412e8e
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jmp 0x4147cb
cmp edi, 0
sete al
mov byte [esi + 0x27], al
test al, 1
mov ebx, dword [esi + 0xc]
jne 0x412ea3
jmp 0x413e74
mov eax, dword [esi + 0x210]
mov al, byte [eax]
mov byte [esi + 0xec], al
mov eax, dword [esi + 0xb0]
mov byte [eax], 0xb8
mov byte [eax + 1], 0x49
xor eax, eax
cmp eax, 2
jae 0x412eef
mov ebx, dword [esi + 0xb0]
movzx edx, byte [ebx + eax]
mov ecx, eax
add ecx, 0x5ffd4508
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0xc0
mov byte [ebx + eax], cl
mov ebx, dword [esi + 0xc]
add eax, 1
jmp 0x412ec0
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xb0]
mov dword [esp + 4], eax
call fcn.00402480
add esp, 8
cmp eax, 0
mov edi, dword [esi + 4]
je 0x413178
sub esp, 4
mov dword [esi + 0x18c], eax
mov dword [esp], eax
call fcn.004147f0
add esp, 4
mov ecx, eax
and ecx, 1
mov dword [esi + 0x14c], eax
or eax, 1
add eax, ecx
mov ecx, 2
mov dword [esi + 0x184], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412f56
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov dword [esi + 0x40], eax
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [esi + 0x184]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b270
add esp, 0x10
xor eax, eax
sub esp, 0x18
mov dword [esp], 0
mov eax, dword [esi + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x14c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0xac]
mov dword [esp + 0x14], eax
call dword [0x4486a4]
mov dword [esi + 0x194], eax
mov eax, dword [esi + 0x20c]
mov cl, byte [eax]
mov byte [esi + 0xf0], cl
mov ecx, dword [esi + 0xa8]
mov byte [ecx], 0x9e
mov byte [ecx + 1], 0xfe
mov byte [ecx + 2], 0xff
mov byte [ecx + 3], 0x30
xor ecx, ecx
cmp ecx, 4
jae 0x41303f
mov ebx, dword [esi + 0xa8]
mov al, byte [ebx + ecx]
mov edi, ecx
add edi, 0x55
mov edx, 0x2a
sub edx, ecx
and edx, 0x51
and edi, 0xae
or edx, edi
mov edi, dword [esi + 4]
xor dl, al
xor dl, 0x51
add dl, 0x58
mov byte [ebx + ecx], dl
mov ebx, dword [esi + 0xc]
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
jmp 0x412ffb
mov ecx, dword [esi + 0xa8]
mov ecx, dword [ecx]
cmp dword [esi + 0x194], ecx
jne 0x41308a
jmp 0x413051
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
jmp 0x413064
jmp 0x413066
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
mov dword [esi + 8], 0
mov eax, 4
jmp 0x413164
mov eax, dword [esi + 0xac]
mov eax, dword [eax]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4130a8
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov ecx, dword [0x4486a4]
mov dword [esi + 0x178], ecx
mov edi, dword [esi + 0xac]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x40]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x14c]
mov dword [esp + 8], edx
mov dword [esi + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call dword [esi + 0x178]
cmp eax, 0
jge 0x41314a
mov edi, dword [esi + 4]
jmp 0x413106
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
jmp 0x413119
jmp 0x41311b
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
jmp 0x41312e
jmp 0x413130
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
mov eax, 4
jmp 0x413164
mov edi, dword [esi + 4]
jmp 0x41314f
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
xor eax, eax
jmp 0x413164
cmp eax, 0
sete cl
test cl, 1
jne 0x41372c
jmp 0x41372e
call fcn.004092c0
mov ebx, eax
and ebx, 0xf
add ebx, 0xc42b7969
sub ebx, 0xc42b7959
xor eax, eax
mov ecx, dword [esi + 0x170]
jmp 0x413198
cmp eax, ebx
jb 0x413334
mov word [ecx], 0
mov eax, dword [esi + 0x204]
mov al, byte [eax]
mov byte [esi + 0xf8], al
mov eax, dword [esi + 0xa0]
mov byte [eax], 0x9a
mov byte [eax + 1], 0xf0
mov byte [eax + 2], 0x45
mov byte [eax + 3], 0xf2
mov byte [eax + 4], 0xb6
mov byte [eax + 5], 0xf4
mov byte [eax + 6], 0x48
mov byte [eax + 7], 0xf6
mov byte [eax + 8], 0x47
mov byte [eax + 9], 0xe8
mov byte [eax + 0xa], 0x8c
mov byte [eax + 0xb], 0xea
mov byte [eax + 0xc], 0x47
mov byte [eax + 0xd], 0xec
mov byte [eax + 0xe], 0xed
mov byte [eax + 0xf], 0xee
xor eax, eax
cmp eax, 0x10
jae 0x41322d
mov ebx, dword [esi + 0xa0]
movzx edx, byte [ebx + eax]
mov ecx, 0x38
sub ecx, eax
or ecx, edx
mov edi, eax
add edi, 0xc7
xor edx, 0xffffffff
or edi, edx
add ecx, edi
mov dl, 0xc6
sub dl, cl
mov byte [ebx + eax], dl
add eax, 1
jmp 0x4131fa
sub esp, 8
mov edi, dword [esi + 0x16c]
mov dword [esp], edi
mov eax, dword [esi + 0xa0]
mov dword [esp + 4], eax
call fcn.0040a780
mov dword [esp], eax
mov eax, dword [esi + 0x170]
mov dword [esp + 4], eax
call fcn.0040a780
add esp, 8
sub eax, edi
sar eax, 1
xor ecx, ecx
sub esp, 0x18
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esi + 0x1cc], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x9c]
mov dword [esp + 0x14], eax
call dword [0x4486a4]
mov dword [esi + 0x198], eax
mov eax, dword [esi + 0x200]
mov cl, byte [eax]
mov byte [esi + 0xfc], cl
mov eax, dword [esi + 0x98]
mov byte [eax], 4
mov byte [eax + 1], 0xd8
mov byte [eax + 2], 0xd9
mov byte [eax + 3], 0x9a
xor ecx, ecx
mov ebx, dword [esi + 0xc]
cmp ecx, 4
jae 0x413313
mov eax, dword [esi + 0x98]
movzx edi, byte [eax + ecx]
mov ebx, ecx
xor ebx, 0x5fcefe0
mov edx, ecx
or edx, 0xfa03101f
and edx, ebx
mov ebx, ecx
or ebx, 0xfa03101f
add edx, ebx
mov ebx, edx
and ebx, edi
or edx, edi
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
add ebx, edi
and ebx, edx
add bl, 8
mov byte [eax + ecx], bl
mov ebx, dword [esi + 0xc]
add ecx, 1
jmp 0x4132c9
mov eax, dword [esi + 0x98]
mov ecx, dword [esi + 0x198]
cmp ecx, dword [eax]
setne al
mov edi, dword [esi + 4]
test al, 1
jne 0x4133b7
jmp 0x4133db
mov dword [esi + 0x1a0], ecx
mov dword [esi + 0x1b4], eax
call fcn.004092c0
mov ecx, dword [esi + 0x208]
mov cl, byte [ecx]
mov byte [esi + 0xf4], cl
mov ecx, dword [esi + 0xa4]
mov byte [ecx], 0x57
mov byte [ecx + 1], 0x74
mov byte [ecx + 2], 0x75
mov byte [ecx + 3], 0x76
xor ecx, ecx
cmp ecx, 4
jae 0x41338a
mov edi, dword [esi + 0xa4]
mov dl, byte [edi + ecx]
mov dh, cl
add dh, 0x2b
xor dh, dl
add dh, 0xa8
mov byte [edi + ecx], dh
add ecx, 1
jmp 0x41336a
cdq
mov ecx, dword [esi + 0xa4]
idiv dword [ecx]
movsx eax, byte [edx + 0x43fb8c]
mov edx, dword [esi + 0x1a0]
mov ecx, edx
add ecx, 2
mov word [edx], ax
mov eax, dword [esi + 0x1b4]
sub eax, 0xffffffff
jmp 0x413198
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
mov dword [esi + 8], 0
mov eax, 4
jmp 0x413727
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov dword [esi + 0x190], eax
mov eax, dword [esi + 0x1fc]
mov cl, byte [eax]
mov byte [esi + 0x100], cl
mov eax, dword [esi + 0x94]
mov byte [eax], 1
mov byte [eax + 1], 6
mov byte [eax + 2], 7
mov byte [eax + 3], 0x18
xor ecx, ecx
cmp ecx, 4
jae 0x413448
mov eax, dword [esi + 0x94]
movzx ebx, byte [eax + ecx]
mov edx, ecx
add edx, 0xa1bfa46d
mov edi, ecx
add edi, 0x6d
and edi, ebx
or edx, ebx
mov ebx, edx
shl ebx, 1
xor ebx, 0xffffffff
add edx, ebx
or edx, edi
mov bl, 0x97
sub bl, dl
mov byte [eax + ecx], bl
mov ebx, dword [esi + 0xc]
add ecx, 1
jmp 0x41340e
mov eax, dword [esi + 0x94]
mov edx, dword [esi + 0x190]
add edx, dword [eax]
mov ecx, 2
mov eax, edx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41346e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov ecx, dword [0x4486a4]
mov dword [esi + 0x17c], ecx
mov edi, dword [esi + 0x9c]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x16c]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x1cc]
mov dword [esp + 8], edx
mov dword [esi + 8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call dword [esi + 0x17c]
cmp eax, 0
jge 0x4134fd
mov edi, dword [esi + 4]
jmp 0x4134cf
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
mov eax, 4
jmp 0x413727
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x48]
cmp ecx, 0
sete al
test al, 1
jne 0x413512
jmp 0x4135b0
mov eax, dword [esi + 0x1f8]
mov al, byte [eax]
mov byte [esi + 0x104], al
mov eax, dword [esi + 0x54]
mov byte [eax], 0x24
mov byte [eax + 1], 0xb
mov byte [eax + 2], 0xe9
mov byte [eax + 3], 0xd
mov byte [eax + 4], 0x96
mov byte [eax + 5], 0xf
mov byte [eax + 6], 0xd5
mov byte [eax + 7], 0x31
mov byte [eax + 8], 0x32
mov byte [eax + 9], 0x33
xor eax, eax
cmp eax, 0xa
jae 0x41358d
mov ecx, dword [esi + 0x54]
mov cl, byte [ecx + eax]
mov byte [esi + 0x1e], cl
movzx edi, cl
mov ecx, eax
add ecx, 0xfe6197da
mov ebx, ecx
and ebx, edi
shl ebx, 1
mov edx, ecx
sub edx, ebx
add edx, edi
xor edx, 0xffffffff
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add cl, byte [esi + 0x1e]
add cl, 0x30
mov edx, dword [esi + 0x54]
mov byte [edx + eax], cl
add eax, 1
jmp 0x41354c
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x54]
mov dword [esp + 4], eax
call fcn.00414bf0
add esp, 8
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
jmp 0x413723
cmp ecx, 1
sete al
test al, 1
jne 0x4135bf
jmp 0x41365c
mov eax, dword [esi + 0x1f4]
mov al, byte [eax]
mov byte [esi + 0x108], al
mov eax, dword [esi + 0x90]
mov byte [eax], 0xf9
mov byte [eax + 1], 0x18
mov byte [eax + 2], 0xbd
mov byte [eax + 3], 0x1a
mov byte [eax + 4], 0x87
mov byte [eax + 5], 0x1c
mov byte [eax + 6], 0x81
mov byte [eax + 7], 0x1e
mov byte [eax + 8], 0x1f
mov byte [eax + 9], 0x10
xor eax, eax
cmp eax, 0xa
jae 0x413639
mov ebx, dword [esi + 0x90]
movzx edi, byte [ebx + eax]
mov ecx, 0x20
sub ecx, eax
or ecx, edi
mov edx, 0x20
sub edx, eax
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 8
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0xc]
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4135fc
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 4], eax
call fcn.00414bf0
add esp, 8
mov edi, dword [esi + 4]
jmp 0x413723
cmp ecx, 2
sete al
test al, 1
jne 0x41366b
jmp 0x413723
mov eax, dword [esi + 0x1f0]
mov al, byte [eax]
mov byte [esi + 0x10c], al
mov eax, dword [esi + 0x8c]
mov byte [eax], 0xfe
mov byte [eax + 1], 0xd1
mov byte [eax + 2], 0xa2
mov byte [eax + 3], 0xd3
mov byte [eax + 4], 0xa7
mov byte [eax + 5], 0xd5
mov byte [eax + 6], 0xe7
mov byte [eax + 7], 0xd7
mov byte [eax + 8], 0xd8
mov byte [eax + 9], 0xd9
xor eax, eax
cmp eax, 0xa
jae 0x413708
mov ebx, dword [esi + 0x8c]
movzx edx, byte [ebx + eax]
mov edi, eax
shl edi, 1
and edi, 0x940eb6a0
mov ecx, eax
xor ecx, 0x4a075b50
add ecx, edi
xor ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0x7f
add edx, edi
mov edi, ecx
and edi, 0x80
xor edi, 0x80
and ecx, 0x80
xor ecx, 0x80
or edi, ecx
sub edx, edi
mov edi, dword [esi + 4]
mov byte [ebx + eax], dl
mov ebx, dword [esi + 0xc]
add eax, 1
jmp 0x4136a8
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 4], eax
call fcn.00414bf0
add esp, 8
xor eax, eax
jmp 0x413727
cmp eax, 0
jne 0x41372e
xor eax, eax
cmp eax, 0
jne 0x4147cb
jmp 0x413739
xor eax, eax
sub esp, 0x1c
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x168]
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.0043d420
add esp, 0x1c
mov edi, eax
cmp edi, 0
jl 0x4138a5
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
mov ebx, dword [esi + 0x168]
mov edx, dword [ebx]
xor edi, edi
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0043da90
add esp, 0x10
mov edi, eax
mov eax, dword [ebx]
mov dword [esi + 0x1c4], eax
mov al, byte [esi + 0xd0]
mov byte [esi + 0x134], al
mov byte [esi + 0x38], 0xce
mov byte [esi + 0x39], 0xcd
mov byte [esi + 0x3a], 0xcc
mov byte [esi + 0x3b], 0xcb
xor eax, eax
cmp eax, 4
jae 0x413823
mov dword [esi + 0x68], edi
movzx edi, byte [esi + eax + 0x38]
mov edx, eax
add edx, 0x89
mov ecx, 0x76
sub ecx, eax
mov ebx, 0x76
sub ebx, eax
and ecx, ebx
or edx, edi
xor edi, 0xffffffff
or ecx, edi
mov edi, dword [esi + 0x68]
and ecx, edx
add cl, 0xb8
mov byte [esi + eax + 0x38], cl
add eax, 1
jmp 0x4137e6
mov eax, dword [esi + 0x38]
mov dword [esi + 0x1b0], eax
xor edx, edx
mov ebx, dword [esi + 0xc]
cmp edx, dword [0x4486a8]
jb 0x41383b
jmp 0x4138a3
mov eax, dword [0x4486ac]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esi + 0x23], cl
test cl, 1
jne 0x413854
jmp 0x413896
mov eax, dword [eax + edx*8 + 4]
cmp eax, dword [esi + 0x1b0]
je 0x413896
mov ecx, dword [0x4486b0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1c4]
mov dword [esp + 0xc], eax
mov dword [esi + 0x19c], edx
call fcn.0043b5b0
mov edx, dword [esi + 0x19c]
add esp, 0x10
test byte [esi + 0x23], 1
je 0x41389e
jmp 0x4138a3
add edx, 1
jmp 0x413831
jmp 0x4138a5
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
mov dword [edi], 0
cmp dword [esi + 0x68], 0
jge 0x4138de
mov dword [esi + 0x10], 0
mov eax, 4
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x48]
jmp 0x413e66
mov ecx, dword [esi + 0x48]
cmp ecx, 1
mov edi, dword [esi + 4]
jne 0x413c30
mov eax, dword [esi + 0x1ec]
mov al, byte [eax]
mov byte [esi + 0x110], al
mov eax, dword [esi + 0x88]
mov byte [eax], 0xac
mov byte [eax + 1], 0xa5
mov byte [eax + 2], 0x4c
xor eax, eax
jmp 0x413910
cmp eax, 3
jae 0x41394f
mov ebx, dword [esi + 0x88]
movzx edx, byte [ebx + eax]
mov ecx, eax
add ecx, 0x1d18ea9a
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0xd1
xor edx, 0xd1
and ecx, 0x2e
sub ecx, edx
add cl, 1
mov byte [ebx + eax], cl
add eax, 1
jmp 0x413910
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x88]
mov dword [esp + 4], eax
call fcn.00402480
add esp, 8
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x1e8]
mov al, byte [eax]
mov byte [esi + 0x114], al
mov eax, dword [esi + 0x84]
mov byte [eax], 0x9b
mov byte [eax + 1], 0xe9
mov byte [eax + 2], 0x7c
xor eax, eax
cmp eax, 3
jae 0x4139ba
mov ebx, dword [esi + 0x84]
movzx edx, byte [ebx + eax]
mov ecx, eax
add ecx, 0x5d2f9c2a
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0xb0
mov byte [ebx + eax], cl
add eax, 1
jmp 0x41398e
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x84]
mov dword [esp + 4], eax
call fcn.00402480
add esp, 8
mov ebx, eax
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00414c40
add esp, 4
mov edi, eax
cmp dword [esi + 0x70], 0
setne al
mov dword [esi + 0x6c], 0
mov byte [esi + 0x25], al
test al, 1
jne 0x413a01
jmp 0x413a18
sub esp, 4
mov eax, dword [esi + 0x70]
mov dword [esp], eax
call fcn.00408c70
add esp, 4
add eax, 1
mov dword [esi + 0x6c], eax
cmp ebx, 0
setne cl
xor eax, eax
mov byte [esi + 0x26], cl
test cl, 1
jne 0x413a2a
jmp 0x413a3d
sub esp, 4
mov dword [esp], ebx
call fcn.00408c70
add esp, 4
sub eax, 0xffffffff
jmp 0x413a3d
xor ecx, ecx
sub ecx, edi
add ecx, 0xfffffff7
xor edx, edx
sub edx, ecx
add edx, dword [esi + 0x6c]
mov dword [esi + 0x154], eax
mov ecx, eax
xor ecx, 0xffffffff
sub ecx, 0xffffffff
sub edx, ecx
xor ecx, ecx
sub ecx, edx
add ecx, 0xffffffff
xor eax, eax
sub eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413a7f
mov ecx, eax
mov dword [esi + 0x1d0], ebx
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x1e4]
mov al, byte [eax]
mov byte [esi + 0x118], al
mov eax, dword [esi + 0x80]
mov byte [eax], 0x56
mov byte [eax + 1], 0xe5
mov byte [eax + 2], 0x53
mov byte [eax + 3], 0xe7
mov byte [eax + 4], 0x46
mov byte [eax + 5], 0xe9
mov byte [eax + 6], 0x4e
mov byte [eax + 7], 0xeb
mov byte [eax + 8], 0x40
mov byte [eax + 9], 0xed
mov byte [eax + 0xa], 0x42
mov byte [eax + 0xb], 0xef
mov byte [eax + 0xc], 0x83
mov byte [eax + 0xd], 0xf1
mov byte [eax + 0xe], 0x80
mov byte [eax + 0xf], 0xf3
mov byte [eax + 0x10], 0xf4
mov byte [eax + 0x11], 0xf5
xor eax, eax
cmp eax, 0x12
jae 0x413b2d
mov ebx, dword [esi + 0x80]
mov dl, byte [ebx + eax]
xor ecx, ecx
sub ecx, eax
mov edi, ecx
shl edi, 1
and edi, 0x78
xor ecx, 0xc3
sub ecx, edi
add cl, 1
xor cl, dl
add cl, 0xe0
mov byte [ebx + eax], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x413af3
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x80]
mov dword [esp + 4], eax
call fcn.0040a780
add esp, 8
mov ecx, eax
add ecx, 2
mov word [eax], 0x20
add ecx, 2
mov word [eax + 2], 0x22
sub esp, 8
mov dword [esp], ecx
mov ebx, dword [esi + 8]
mov dword [esp + 4], ebx
call fcn.0040a780
add esp, 8
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ebx, 0
sete al
test al, 1
jne 0x413b97
jmp 0x413b86
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
test byte [esi + 0x25], 1
jne 0x413ba8
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x154]
jmp 0x413be7
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov eax, dword [esi + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x70]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b270
add esp, 0x10
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x154]
test byte [esi + 0x26], 1
jne 0x413bef
jmp 0x413c1f
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edx
mov eax, dword [esi + 0x1d0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b270
add esp, 0x10
mov dword [esi + 8], 0
xor ecx, ecx
mov edi, dword [esi + 4]
jmp 0x413e64
cmp ecx, 2
sete al
mov dword [esi + 0x10], 0
test al, 1
jne 0x413c46
jmp 0x413e64
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00414c40
add esp, 4
add eax, 0x1d
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413c73
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x1e0]
mov al, byte [eax]
mov byte [esi + 0x11c], al
mov eax, dword [esi + 0x50]
mov byte [eax], 0xcb
mov byte [eax + 1], 0xea
mov byte [eax + 2], 0xeb
mov byte [eax + 3], 0xec
xor eax, eax
cmp eax, 4
jae 0x413ce8
mov ecx, dword [esi + 0x50]
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0xe1
mov ecx, edx
shl ecx, 1
xor ecx, 0xffffffff
add ecx, edx
and ecx, edi
mov edi, 0x1e
sub edi, eax
mov ebx, edx
xor ebx, 0xffffffff
or edi, ebx
add edi, edx
add edi, 1
or ecx, edi
add cl, 0xf8
mov edx, dword [esi + 0x50]
mov byte [edx + eax], cl
add eax, 1
jmp 0x413ca6
mov eax, dword [esi + 0x1dc]
mov al, byte [eax]
mov byte [esi + 0x120], al
mov eax, dword [esi + 0x7c]
mov byte [eax], 0x1b
mov byte [eax + 1], 0x8c
mov byte [eax + 2], 0x12
mov byte [eax + 3], 0x8e
mov byte [eax + 4], 0x18
mov byte [eax + 5], 0x80
mov byte [eax + 6], 0xe4
mov byte [eax + 7], 0x82
mov byte [eax + 8], 0x11
mov byte [eax + 9], 0x84
mov byte [eax + 0xa], 0x16
mov byte [eax + 0xb], 0x86
mov byte [eax + 0xc], 0x1f
mov byte [eax + 0xd], 0xb8
mov byte [eax + 0xe], 0xdc
mov byte [eax + 0xf], 0xba
mov byte [eax + 0x10], 0x27
mov byte [eax + 0x11], 0xbc
mov byte [eax + 0x12], 0x21
mov byte [eax + 0x13], 0xbe
mov byte [eax + 0x14], 0x9f
mov byte [eax + 0x15], 0xb0
mov byte [eax + 0x16], 0xec
mov byte [eax + 0x17], 0xb2
mov byte [eax + 0x18], 0xd6
mov byte [eax + 0x19], 0xb4
mov byte [eax + 0x1a], 0x3d
mov byte [eax + 0x1b], 0xb6
mov byte [eax + 0x1c], 0xd2
mov byte [eax + 0x1d], 0xa8
mov byte [eax + 0x1e], 0xca
mov byte [eax + 0x1f], 0xaa
mov byte [eax + 0x20], 0x8b
mov byte [eax + 0x21], 0xac
mov byte [eax + 0x22], 0xcf
mov byte [eax + 0x23], 0xae
mov byte [eax + 0x24], 0x26
mov byte [eax + 0x25], 0xa0
mov byte [eax + 0x26], 0x31
mov byte [eax + 0x27], 0xa2
mov byte [eax + 0x28], 0xc2
mov byte [eax + 0x29], 0xa4
mov byte [eax + 0x2a], 0x36
mov byte [eax + 0x2b], 0xa6
mov byte [eax + 0x2c], 0x34
mov byte [eax + 0x2d], 0xd8
mov byte [eax + 0x2e], 0xf9
mov byte [eax + 0x2f], 0xda
mov byte [eax + 0x30], 0x86
mov byte [eax + 0x31], 0xdc
mov byte [eax + 0x32], 0xbb
mov byte [eax + 0x33], 0xde
mov byte [eax + 0x34], 0xff
mov byte [eax + 0x35], 0xd0
mov byte [eax + 0x36], 0xf3
mov byte [eax + 0x37], 0xd2
mov byte [eax + 0x38], 0xd3
mov byte [eax + 0x39], 0xd4
xor eax, eax
cmp eax, 0x3a
jae 0x413e23
mov ebx, dword [esi + 0x7c]
movzx edx, byte [ebx + eax]
xor ecx, ecx
sub ecx, eax
mov edi, ecx
shl edi, 1
and edi, 0xfc9ae3da
xor ecx, 0x1b28e12
add ecx, 1
sub ecx, edi
xor ecx, edx
mov edx, ecx
add edx, 0x67
shl ecx, 1
and ecx, 2
xor ecx, 2
xor edx, 1
add edx, ecx
mov byte [ebx + eax], dl
add eax, 1
jmp 0x413de2
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 4], eax
call fcn.0040a780
mov dword [esp], eax
mov eax, dword [esi + 8]
mov dword [esp + 4], eax
call fcn.0040a780
mov dword [esp], eax
mov eax, dword [esi + 0x50]
mov dword [esp + 4], eax
call fcn.0040a780
add esp, 8
mov ecx, 2
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
xor eax, eax
cmp eax, 0
je 0x414097
jmp 0x4147cb
call fcn.00414c60
xor edi, 1
mov ecx, dword [esi + 0x48]
mov eax, ecx
xor eax, 2
or edi, eax
sete al
mov dword [esi + 0x10], 0
test al, 1
mov dword [esi + 8], 0
mov edi, dword [esi + 4]
jne 0x413ea3
jmp 0x414097
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.004147f0
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413ed3
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 0x10
mov dword [esi + 0x150], edx
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b270
add esp, 0x10
mov eax, dword [esi + 0xb4]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0x18
or eax, 0x18
add eax, ecx
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413f40
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408b60
add esp, 4
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0x1d8]
mov al, byte [eax]
mov byte [esi + 0x124], al
mov eax, dword [esi + 0x78]
mov byte [eax], 4
mov byte [eax + 1], 0xb5
mov byte [eax + 2], 0x19
mov byte [eax + 3], 0xb7
mov byte [eax + 4], 0xf
mov byte [eax + 5], 0xb9
mov byte [eax + 6], 0x1f
mov byte [eax + 7], 0xbb
mov byte [eax + 8], 0xe
mov byte [eax + 9], 0xbd
mov byte [eax + 0xa], 0xd
mov byte [eax + 0xb], 0xbf
mov byte [eax + 0xc], 0x28
mov byte [eax + 0xd], 0x81
mov byte [eax + 0xe], 0x27
mov byte [eax + 0xf], 0x83
mov byte [eax + 0x10], 0x28
mov byte [eax + 0x11], 0x85
mov byte [eax + 0x12], 0x2a
mov byte [eax + 0x13], 0x87
mov byte [eax + 0x14], 0xe8
mov byte [eax + 0x15], 0x89
mov byte [eax + 0x16], 0xe7
mov byte [eax + 0x17], 0x8b
mov byte [eax + 0x18], 0x29
mov byte [eax + 0x19], 0x8d
mov byte [eax + 0x1a], 0x36
mov byte [eax + 0x1b], 0x8f
mov byte [eax + 0x1c], 0x35
mov byte [eax + 0x1d], 0x91
mov byte [eax + 0x1e], 0x31
mov byte [eax + 0x1f], 0x93
mov byte [eax + 0x20], 0xf4
mov byte [eax + 0x21], 0x95
mov byte [eax + 0x22], 0x34
mov byte [eax + 0x23], 0x97
mov byte [eax + 0x24], 0x21
mov byte [eax + 0x25], 0x99
mov byte [eax + 0x26], 0x2a
mov byte [eax + 0x27], 0x9b
mov byte [eax + 0x28], 0x3d
mov byte [eax + 0x29], 0x9d
mov byte [eax + 0x2a], 0x2d
mov byte [eax + 0x2b], 0x9f
mov byte [eax + 0x2c], 0x53
mov byte [eax + 0x2d], 0xe1
mov byte [eax + 0x2e], 0x82
mov byte [eax + 0x2f], 0xe3
mov byte [eax + 0x30], 0xe4
mov byte [eax + 0x31], 0xe5
xor eax, eax
cmp eax, 0x32
jae 0x414048
mov edi, dword [esi + 0x78]
mov cl, byte [edi + eax]
mov dl, al
add dl, 0x14
xor dl, cl
add dl, 0x60
mov byte [edi + eax], dl
add eax, 1
jmp 0x41402b
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 4], eax
call fcn.0040a780
mov dword [esp], eax
mov eax, dword [esi + 0x150]
mov dword [esp + 4], eax
call fcn.0040a780
add esp, 8
mov edi, dword [esi + 4]
sub esp, 4
mov eax, dword [esi + 0x150]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
mov dword [esi + 8], 0
mov ecx, 2
jmp 0x414097
test ecx, ecx
je 0x4140b8
jmp 0x41409d
mov eax, ecx
sub eax, 1
je 0x414247
jmp 0x4140aa
sub ecx, 2
je 0x41453c
jmp 0x414782
test byte [esi + 0x27], 1
jne 0x4140c3
jmp 0x414247
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x164]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov eax, dword [0x44769c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043ce80
add esp, 8
test eax, eax
setne cl
jne 0x414100
jmp 0x4140fe
xor eax, eax
xor ecx, ecx
sub esp, 0x28
mov ecx, dword [esi + 8]
mov dword [esp], ecx
mov ecx, dword [esi + 0x10]
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
mov ecx, dword [esi + 0x164]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0x160]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
mov edi, dword [esi + 4]
je 0x414242
mov eax, dword [esi + 0x160]
mov eax, dword [eax]
mov dword [esi + 0x1b8], eax
mov al, byte [esi + 0xcc]
mov byte [esi + 0x138], al
mov byte [esi + 0x34], 0xce
mov byte [esi + 0x35], 0xcd
mov byte [esi + 0x36], 0xcc
mov byte [esi + 0x37], 0xcb
xor eax, eax
cmp eax, 4
jae 0x4141ca
movzx edi, byte [esi + eax + 0x34]
mov edx, eax
add edx, 0x89
mov ecx, 0x76
sub ecx, eax
mov ebx, 0x76
sub ebx, eax
and ecx, ebx
mov ebx, dword [esi + 0xc]
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
add cl, 0xb8
mov byte [esi + eax + 0x34], cl
add eax, 1
jmp 0x414190
mov ecx, dword [esi + 0x34]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x4141d9
jmp 0x41423f
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4141ef
jmp 0x414233
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414233
mov dword [esi + 0x1a4], ecx
mov ecx, dword [0x4486b0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1b8]
mov dword [esp + 0xc], eax
mov byte [esi + 0x1f], dl
call fcn.0043b5b0
mov dl, byte [esi + 0x1f]
mov ecx, dword [esi + 0x1a4]
add esp, 0x10
test dl, 1
je 0x41423a
jmp 0x41423f
add edi, 1
jmp 0x4141cf
mov edi, dword [esi + 4]
jmp 0x414782
mov eax, dword [0x44769c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043ce80
add esp, 8
test eax, eax
setne cl
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
xor edx, edx
lea edx, [0x422330]
sub esp, 0x18
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
mov dword [esi + 0x174], eax
cmp eax, 0
je 0x414537
mov eax, dword [esi + 0x1d4]
mov al, byte [eax]
mov byte [esi + 0x128], al
mov eax, dword [esi + 0x4c]
mov byte [eax], 0x93
mov byte [eax + 1], 0xde
mov byte [eax + 2], 0x59
mov byte [eax + 3], 0xfa
mov byte [eax + 4], 0x98
mov byte [eax + 5], 0x87
mov byte [eax + 6], 0x86
mov byte [eax + 7], 0x85
xor edi, edi
cmp edi, 8
jae 0x414372
mov eax, dword [esi + 0x4c]
movzx edx, byte [eax + edi]
mov eax, edi
add eax, 0xe44e31cb
mov dword [esi + 0x180], eax
mov ebx, 0x1bb1ce34
sub ebx, edi
or ebx, edx
mov ecx, 0x34
sub ecx, edi
and ecx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov ebx, ecx
shl ebx, 1
xor ebx, 0xffffffff
add ecx, ebx
mov ebx, eax
and ebx, ecx
mov eax, ebx
and eax, 2
xor eax, 2
mov ecx, ebx
and ecx, 0xfffffffd
imul ecx, eax
mov eax, ebx
and eax, 2
or ebx, 2
imul ebx, eax
add ebx, ecx
sub ebx, dword [esi + 0x180]
mov eax, edx
xor eax, 0xffffffff
mov ecx, ebx
and ecx, eax
xor ebx, 0xffffffff
and edx, ebx
sub edx, ecx
mov eax, edx
xor eax, 0x59
shl edx, 1
and edx, 0x4c
sub edx, eax
add dl, 1
mov eax, dword [esi + 0x4c]
mov byte [eax + edi], dl
add edi, 1
jmp 0x4142e1
mov ecx, dword [esi + 0x4c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0x15c]
mov dword [edx + 4], ecx
mov dword [edx], eax
jmp 0x414387
mov al, byte [esi + 0x12c]
mov byte [esi + 0x130], al
mov byte [esi + 0x3c], 0xce
mov byte [esi + 0x3d], 0xcd
mov byte [esi + 0x3e], 0xcc
mov byte [esi + 0x3f], 0xcb
xor ecx, ecx
cmp ecx, 4
jae 0x4143dc
movzx ebx, byte [esi + ecx + 0x3c]
mov edi, ecx
add edi, 0x89
mov edx, 0x76
sub edx, ecx
mov eax, 0x76
sub eax, ecx
and edx, eax
or edi, ebx
xor ebx, 0xffffffff
or edx, ebx
and edx, edi
add dl, 0xb8
mov byte [esi + ecx + 0x3c], dl
add ecx, 1
jmp 0x4143a5
mov ebx, dword [esi + 0x3c]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x4143eb
jmp 0x414465
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xa67d73aa
sete cl
test cl, 1
jne 0x414401
jmp 0x41444d
mov eax, dword [eax + edi*8 + 4]
cmp eax, ebx
je 0x41444d
mov byte [esi + 0x24], cl
mov ecx, dword [0x4486b0]
xor edx, edx
sub esp, 0x18
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
mov eax, dword [esi + 0x174]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x15c]
mov dword [esp + 0x14], eax
call fcn.0043b5b0
mov cl, byte [esi + 0x24]
add esp, 0x18
test cl, 1
je 0x414454
jmp 0x414465
mov eax, edi
shl eax, 1
and eax, 2
xor edi, 1
add edi, eax
jmp 0x4143e1
mov al, byte [esi + 0xc8]
mov byte [esi + 0x13c], al
mov byte [esi + 0x30], 0xce
mov byte [esi + 0x31], 0xcd
mov byte [esi + 0x32], 0xcc
mov byte [esi + 0x33], 0xcb
xor ecx, ecx
cmp ecx, 4
jae 0x4144ba
movzx ebx, byte [esi + ecx + 0x30]
mov edi, ecx
add edi, 0x89
mov edx, 0x76
sub edx, ecx
mov eax, 0x76
sub eax, ecx
and edx, eax
or edi, ebx
xor ebx, 0xffffffff
or edx, ebx
and edx, edi
add dl, 0xb8
mov byte [esi + ecx + 0x30], dl
add ecx, 1
jmp 0x414483
mov ecx, dword [esi + 0x30]
xor edi, edi
mov ebx, dword [esi + 0xc]
cmp edi, dword [0x4486a8]
jb 0x4144cc
jmp 0x414532
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4144e2
jmp 0x414526
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414526
mov dword [esi + 0x1a8], ecx
mov ecx, dword [0x4486b0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x174]
mov dword [esp + 0xc], eax
mov byte [esi + 0x20], dl
call fcn.0043b5b0
mov dl, byte [esi + 0x20]
mov ecx, dword [esi + 0x1a8]
add esp, 0x10
test dl, 1
je 0x41452d
jmp 0x414532
add edi, 1
jmp 0x4144c2
mov edi, dword [esi + 4]
jmp 0x414537
jmp 0x414782
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x158]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov eax, dword [0x44769c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.0043ce80
add esp, 8
test eax, eax
setne cl
jne 0x414579
jmp 0x414577
xor eax, eax
xor ecx, ecx
sub esp, 0x28
mov dword [esp], 0
mov ecx, dword [esi + 0x10]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0x8000000
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov ecx, dword [esi + 0x158]
mov dword [esp + 0x20], ecx
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
mov edi, dword [esi + 4]
je 0x414780
mov eax, dword [esi + 0x74]
mov eax, dword [eax + 4]
mov dword [esi + 0x1c0], eax
mov al, byte [esi + 0xc4]
mov byte [esi + 0x140], al
mov byte [esi + 0x2c], 0xce
mov byte [esi + 0x2d], 0xcd
mov byte [esi + 0x2e], 0xcc
mov byte [esi + 0x2f], 0xcb
xor eax, eax
cmp eax, 4
jae 0x41463c
movzx edi, byte [esi + eax + 0x2c]
mov edx, eax
add edx, 0x89
mov ecx, 0x76
sub ecx, eax
mov ebx, 0x76
sub ebx, eax
and ecx, ebx
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
add cl, 0xb8
mov byte [esi + eax + 0x2c], cl
add eax, 1
jmp 0x414605
mov ebx, dword [esi + 0x2c]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x41464b
jmp 0x4146a5
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete cl
test cl, 1
jne 0x414661
jmp 0x414699
mov eax, dword [eax + edi*8 + 4]
cmp eax, ebx
je 0x414699
mov byte [esi + 0x22], cl
mov ecx, dword [0x4486b0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1c0]
mov dword [esp + 0xc], eax
call fcn.0043b5b0
mov cl, byte [esi + 0x22]
add esp, 0x10
test cl, 1
je 0x4146a0
jmp 0x4146a5
add edi, 1
jmp 0x414641
mov eax, dword [esi + 0x74]
mov eax, dword [eax]
mov dword [esi + 0x1bc], eax
mov al, byte [esi + 0xc0]
mov byte [esi + 0x144], al
mov byte [esi + 0x28], 0xce
mov byte [esi + 0x29], 0xcd
mov byte [esi + 0x2a], 0xcc
mov byte [esi + 0x2b], 0xcb
xor eax, eax
cmp eax, 4
jae 0x414705
movzx edi, byte [esi + eax + 0x28]
mov edx, eax
add edx, 0x89
mov ecx, 0x76
sub ecx, eax
mov ebx, 0x76
sub ebx, eax
and ecx, ebx
or edx, edi
xor edi, 0xffffffff
or ecx, edi
and ecx, edx
add cl, 0xb8
mov byte [esi + eax + 0x28], cl
add eax, 1
jmp 0x4146ce
mov ecx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [esi + 0xc]
cmp edi, dword [0x4486a8]
jb 0x414717
jmp 0x41477d
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x41472d
jmp 0x414771
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x414771
mov dword [esi + 0x1ac], ecx
mov ecx, dword [0x4486b0]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1bc]
mov dword [esp + 0xc], eax
mov byte [esi + 0x21], dl
call fcn.0043b5b0
mov dl, byte [esi + 0x21]
mov ecx, dword [esi + 0x1ac]
add esp, 0x10
test dl, 1
je 0x414778
jmp 0x41477d
add edi, 1
jmp 0x41470d
mov edi, dword [esi + 4]
jmp 0x414782
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00439a70
add esp, 4
cmp dword [esi + 8], 0
sete al
test al, 1
jne 0x4147b3
jmp 0x4147a2
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00408b70
add esp, 4
mov eax, dword [esi + 0x10]
cmp eax, 0
je 0x4147c9
sub esp, 4
mov dword [esp], eax
call fcn.00408b70
add esp, 4
jmp 0x4147cb
jmp 0x4147cd
add ebx, 1
jmp 0x412a5a
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret