Function at 0x411c80
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.00414060
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.00401b70
add esp, 4
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x411e4c
jmp 0x411e53
xor eax, eax
jmp 0x413bd5
xor ebx, ebx
mov dword [esi + 4], edi
jmp 0x411e5a
sub esp, 4
mov dword [esp], edi
call fcn.00401f40
add esp, 4
cmp ebx, eax
jb 0x411e73
mov al, 1
jmp 0x413bd5
sub esp, 8
mov dword [esp], edi
mov dword [esp + 4], ebx
call fcn.00401f50
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 0x411ee4
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 0x411ea5
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.00401e40
add esp, 0xc
cmp eax, 0
je 0x412095
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 0x411fa5
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 0x411f2b
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.00401e40
add esp, 0xc
cmp eax, 0
setne al
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
test al, 1
jne 0x411fda
jmp 0x412095
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 0x41206a
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 0x411ff4
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.00401e40
add esp, 0xc
test eax, eax
sete al
test al, 1
jne 0x412095
jmp 0x41209a
jmp 0x413bcd
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 0x4120d7
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 0x4120b7
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xbc]
mov dword [esp + 4], eax
call fcn.00401880
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 0x412139
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 0x412119
sub esp, 8
mov eax, dword [esi + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00401980
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 0x41219b
cmp eax, 2
jae 0x4121e6
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 0x41219b
sub esp, 8
mov eax, dword [esi + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x18]
mov dword [esp], eax
call fcn.00401980
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.0040a670
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.0040ae60
add esp, 0x10
test al, 1
jne 0x41228e
mov ebx, dword [esi + 0xc]
mov edi, dword [esi + 4]
jmp 0x413bcb
cmp edi, 0
sete al
mov byte [esi + 0x27], al
test al, 1
mov ebx, dword [esi + 0xc]
jne 0x4122a3
jmp 0x413274
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 0x4122ef
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 0x4122c0
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0xb0]
mov dword [esp + 4], eax
call fcn.00401880
add esp, 8
cmp eax, 0
mov edi, dword [esi + 4]
je 0x412578
sub esp, 4
mov dword [esi + 0x18c], eax
mov dword [esp], eax
call fcn.00413bf0
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 0x412356
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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.0040a670
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 0x41243f
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 0x4123fb
mov ecx, dword [esi + 0xa8]
mov ecx, dword [ecx]
cmp dword [esi + 0x194], ecx
jne 0x41248a
jmp 0x412451
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
jmp 0x412464
jmp 0x412466
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
mov dword [esi + 8], 0
mov eax, 4
jmp 0x412564
mov eax, dword [esi + 0xac]
mov eax, dword [eax]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4124a8
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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 0x41254a
mov edi, dword [esi + 4]
jmp 0x412506
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
jmp 0x412519
jmp 0x41251b
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
jmp 0x41252e
jmp 0x412530
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
mov eax, 4
jmp 0x412564
mov edi, dword [esi + 4]
jmp 0x41254f
sub esp, 4
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
xor eax, eax
jmp 0x412564
cmp eax, 0
sete cl
test cl, 1
jne 0x412b2c
jmp 0x412b2e
call fcn.004086c0
mov ebx, eax
and ebx, 0xf
add ebx, 0xc42b7969
sub ebx, 0xc42b7959
xor eax, eax
mov ecx, dword [esi + 0x170]
jmp 0x412598
cmp eax, ebx
jb 0x412734
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 0x41262d
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 0x4125fa
sub esp, 8
mov edi, dword [esi + 0x16c]
mov dword [esp], edi
mov eax, dword [esi + 0xa0]
mov dword [esp + 4], eax
call fcn.00409b80
mov dword [esp], eax
mov eax, dword [esi + 0x170]
mov dword [esp + 4], eax
call fcn.00409b80
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 0x412713
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 0x4126c9
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 0x4127b7
jmp 0x4127db
mov dword [esi + 0x1a0], ecx
mov dword [esi + 0x1b4], eax
call fcn.004086c0
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 0x41278a
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 0x41276a
cdq
mov ecx, dword [esi + 0xa4]
idiv dword [ecx]
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esi + 0x1a0]
mov ecx, edx
add ecx, 2
mov word [edx], ax
mov eax, dword [esi + 0x1b4]
sub eax, 0xffffffff
jmp 0x412598
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
mov dword [esi + 8], 0
mov eax, 4
jmp 0x412b27
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 0x412848
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 0x41280e
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 0x41286e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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 0x4128fd
mov edi, dword [esi + 4]
jmp 0x4128cf
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
mov eax, 4
jmp 0x412b27
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x48]
cmp ecx, 0
sete al
test al, 1
jne 0x412912
jmp 0x4129b0
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 0x41298d
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 0x41294c
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x54]
mov dword [esp + 4], eax
call fcn.00413ff0
add esp, 8
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
jmp 0x412b23
cmp ecx, 1
sete al
test al, 1
jne 0x4129bf
jmp 0x412a5c
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 0x412a39
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 0x4129fc
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 4], eax
call fcn.00413ff0
add esp, 8
mov edi, dword [esi + 4]
jmp 0x412b23
cmp ecx, 2
sete al
test al, 1
jne 0x412a6b
jmp 0x412b23
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 0x412b08
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 0x412aa8
sub esp, 8
mov eax, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0x8c]
mov dword [esp + 4], eax
call fcn.00413ff0
add esp, 8
xor eax, eax
jmp 0x412b27
cmp eax, 0
jne 0x412b2e
xor eax, eax
cmp eax, 0
jne 0x413bcb
jmp 0x412b39
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.0043c820
add esp, 0x1c
mov edi, eax
cmp edi, 0
jl 0x412ca5
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.0043ce90
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 0x412c23
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 0x412be6
mov eax, dword [esi + 0x38]
mov dword [esi + 0x1b0], eax
xor edx, edx
mov ebx, dword [esi + 0xc]
cmp edx, dword [0x4486a8]
jb 0x412c3b
jmp 0x412ca3
mov eax, dword [0x4486ac]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esi + 0x23], cl
test cl, 1
jne 0x412c54
jmp 0x412c96
mov eax, dword [eax + edx*8 + 4]
cmp eax, dword [esi + 0x1b0]
je 0x412c96
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.0043a9b0
mov edx, dword [esi + 0x19c]
add esp, 0x10
test byte [esi + 0x23], 1
je 0x412c9e
jmp 0x412ca3
add edx, 1
jmp 0x412c31
jmp 0x412ca5
mov dword [esi + 0x68], edi
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
mov dword [edi], 0
cmp dword [esi + 0x68], 0
jge 0x412cde
mov dword [esi + 0x10], 0
mov eax, 4
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x48]
jmp 0x413266
mov ecx, dword [esi + 0x48]
cmp ecx, 1
mov edi, dword [esi + 4]
jne 0x413030
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 0x412d10
cmp eax, 3
jae 0x412d4f
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 0x412d10
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x88]
mov dword [esp + 4], eax
call fcn.00401880
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 0x412dba
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 0x412d8e
sub esp, 8
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov eax, dword [esi + 0x84]
mov dword [esp + 4], eax
call fcn.00401880
add esp, 8
mov ebx, eax
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00414040
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 0x412e01
jmp 0x412e18
sub esp, 4
mov eax, dword [esi + 0x70]
mov dword [esp], eax
call fcn.00408070
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 0x412e2a
jmp 0x412e3d
sub esp, 4
mov dword [esp], ebx
call fcn.00408070
add esp, 4
sub eax, 0xffffffff
jmp 0x412e3d
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 0x412e7f
mov ecx, eax
mov dword [esi + 0x1d0], ebx
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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 0x412f2d
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 0x412ef3
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x80]
mov dword [esp + 4], eax
call fcn.00409b80
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.00409b80
add esp, 8
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ebx, 0
sete al
test al, 1
jne 0x412f97
jmp 0x412f86
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
test byte [esi + 0x25], 1
jne 0x412fa8
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x154]
jmp 0x412fe7
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.0040a670
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 0x412fef
jmp 0x41301f
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.0040a670
add esp, 0x10
mov dword [esi + 8], 0
xor ecx, ecx
mov edi, dword [esi + 4]
jmp 0x413264
cmp ecx, 2
sete al
mov dword [esi + 0x10], 0
test al, 1
jne 0x413046
jmp 0x413264
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00414040
add esp, 4
add eax, 0x1d
add eax, 1
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x413073
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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 0x4130e8
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 0x4130a6
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 0x413223
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 0x4131e2
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 4], eax
call fcn.00409b80
mov dword [esp], eax
mov eax, dword [esi + 8]
mov dword [esp + 4], eax
call fcn.00409b80
mov dword [esp], eax
mov eax, dword [esi + 0x50]
mov dword [esp + 4], eax
call fcn.00409b80
add esp, 8
mov ecx, 2
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0xc]
xor eax, eax
cmp eax, 0
je 0x413497
jmp 0x413bcb
call fcn.00414060
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 0x4132a3
jmp 0x413497
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00413bf0
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 0x4132d3
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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.0040a670
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 0x413340
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00407f60
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 0x413448
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 0x41342b
sub esp, 8
mov eax, dword [esi + 0x10]
mov dword [esp], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 4], eax
call fcn.00409b80
mov dword [esp], eax
mov eax, dword [esi + 0x150]
mov dword [esp + 4], eax
call fcn.00409b80
add esp, 8
mov edi, dword [esi + 4]
sub esp, 4
mov eax, dword [esi + 0x150]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
mov dword [esi + 8], 0
mov ecx, 2
jmp 0x413497
test ecx, ecx
je 0x4134b8
jmp 0x41349d
mov eax, ecx
sub eax, 1
je 0x413647
jmp 0x4134aa
sub ecx, 2
je 0x41393c
jmp 0x413b82
test byte [esi + 0x27], 1
jne 0x4134c3
jmp 0x413647
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.0043c280
add esp, 8
test eax, eax
setne cl
jne 0x413500
jmp 0x4134fe
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 0x413642
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 0x4135ca
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 0x413590
mov ecx, dword [esi + 0x34]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x4135d9
jmp 0x41363f
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4135ef
jmp 0x413633
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413633
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.0043a9b0
mov dl, byte [esi + 0x1f]
mov ecx, dword [esi + 0x1a4]
add esp, 0x10
test dl, 1
je 0x41363a
jmp 0x41363f
add edi, 1
jmp 0x4135cf
mov edi, dword [esi + 4]
jmp 0x413b82
mov eax, dword [0x44769c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.0043c280
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 0x413937
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 0x413772
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 0x4136e1
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 0x413787
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 0x4137dc
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 0x4137a5
mov ebx, dword [esi + 0x3c]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x4137eb
jmp 0x413865
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xa67d73aa
sete cl
test cl, 1
jne 0x413801
jmp 0x41384d
mov eax, dword [eax + edi*8 + 4]
cmp eax, ebx
je 0x41384d
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.0043a9b0
mov cl, byte [esi + 0x24]
add esp, 0x18
test cl, 1
je 0x413854
jmp 0x413865
mov eax, edi
shl eax, 1
and eax, 2
xor edi, 1
add edi, eax
jmp 0x4137e1
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 0x4138ba
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 0x413883
mov ecx, dword [esi + 0x30]
xor edi, edi
mov ebx, dword [esi + 0xc]
cmp edi, dword [0x4486a8]
jb 0x4138cc
jmp 0x413932
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4138e2
jmp 0x413926
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413926
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.0043a9b0
mov dl, byte [esi + 0x20]
mov ecx, dword [esi + 0x1a8]
add esp, 0x10
test dl, 1
je 0x41392d
jmp 0x413932
add edi, 1
jmp 0x4138c2
mov edi, dword [esi + 4]
jmp 0x413937
jmp 0x413b82
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.0043c280
add esp, 8
test eax, eax
setne cl
jne 0x413979
jmp 0x413977
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 0x413b80
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 0x413a3c
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 0x413a05
mov ebx, dword [esi + 0x2c]
xor edi, edi
cmp edi, dword [0x4486a8]
jb 0x413a4b
jmp 0x413aa5
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete cl
test cl, 1
jne 0x413a61
jmp 0x413a99
mov eax, dword [eax + edi*8 + 4]
cmp eax, ebx
je 0x413a99
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.0043a9b0
mov cl, byte [esi + 0x22]
add esp, 0x10
test cl, 1
je 0x413aa0
jmp 0x413aa5
add edi, 1
jmp 0x413a41
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 0x413b05
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 0x413ace
mov ecx, dword [esi + 0x28]
xor edi, edi
mov ebx, dword [esi + 0xc]
cmp edi, dword [0x4486a8]
jb 0x413b17
jmp 0x413b7d
mov eax, dword [0x4486ac]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x413b2d
jmp 0x413b71
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x413b71
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.0043a9b0
mov dl, byte [esi + 0x21]
mov ecx, dword [esi + 0x1ac]
add esp, 0x10
test dl, 1
je 0x413b78
jmp 0x413b7d
add edi, 1
jmp 0x413b0d
mov edi, dword [esi + 4]
jmp 0x413b82
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00438e70
add esp, 4
cmp dword [esi + 8], 0
sete al
test al, 1
jne 0x413bb3
jmp 0x413ba2
sub esp, 4
mov eax, dword [esi + 8]
mov dword [esp], eax
call fcn.00407f70
add esp, 4
mov eax, dword [esi + 0x10]
cmp eax, 0
je 0x413bc9
sub esp, 4
mov dword [esp], eax
call fcn.00407f70
add esp, 4
jmp 0x413bcb
jmp 0x413bcd
add ebx, 1
jmp 0x411e5a
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret