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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x208
mov esi, esp
mov edi, dword [ebp + 8]
call fcn.00413830
sub esp, 8
mov ebx, esp
push eax
mov dword [esi + 0x1f4], esp
push eax
mov dword [esi + 0x70], esp
push eax
mov dword [esi + 0x1f0], esp
sub esp, 8
mov dword [esi + 0x6c], esp
push eax
mov dword [esi + 0x1ec], esp
sub esp, 8
mov dword [esi + 0x68], esp
push eax
mov dword [esi + 0x1e8], esp
sub esp, 8
mov dword [esi + 0x64], esp
push eax
mov dword [esi + 0x1e4], esp
sub esp, 8
mov dword [esi + 0x60], esp
push eax
mov dword [esi + 0x1e0], esp
sub esp, 0x400
mov dword [esi + 0x1dc], esp
push eax
mov dword [esi + 0x14], esp
push eax
mov dword [esi + 0x5c], esp
push eax
mov dword [esi + 0x15c], esp
push eax
mov dword [esi + 0x1d8], esp
push eax
mov dword [esi + 0x158], esp
sub esp, 0x40
mov dword [esi + 0x154], esp
sub esp, 0x60
mov dword [esi + 0x150], esp
sub esp, 0x14
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0x1d4], esp
push eax
mov dword [esi + 0x14c], esp
sub esp, 0x10
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x1d0], esp
sub esp, 0x10
mov dword [esi + 0x148], esp
push eax
mov dword [esi + 0x1cc], esp
sub esp, 0x10
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x1c8], esp
push eax
mov dword [esi + 0x144], esp
push eax
mov dword [esi + 0x140], esp
push eax
mov dword [esi + 0x1c4], esp
sub esp, 8
mov dword [esi + 0x13c], esp
push eax
mov dword [esi + 0x1c0], esp
sub esp, 0x18
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x1bc], esp
sub esp, 8
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x1b8], esp
sub esp, 0x40
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x1b4], esp
sub esp, 0x38
mov dword [esi + 0x138], esp
push eax
mov dword [esi + 0x1b0], esp
sub esp, 0x44
mov dword [esi + 0x1ac], esp
sub esp, 0x10
mov dword [esi + 0x134], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x130], eax
mov esp, eax
push eax
sub esp, 0x40
mov dword [esi + 0x1a8], esp
sub esp, 0x10
mov dword [esi + 0x40], esp
sub esp, 4
mov dword [esp], edi
call fcn.00401980
add esp, 4
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x4116d7
jmp 0x4116de
xor eax, eax
jmp 0x413385
mov dword [esi + 0x2c], 0
jmp 0x4116e7
sub esp, 4
mov dword [esp], edi
call fcn.00401b50
add esp, 4
cmp dword [esi + 0x2c], eax
setb al
test al, 1
jne 0x411708
jmp 0x411701
mov al, 1
jmp 0x413385
sub esp, 8
mov dword [esp], edi
mov eax, dword [esi + 0x2c]
mov dword [esp + 4], eax
call fcn.00401b60
add esp, 8
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x1f4]
mov al, byte [eax]
mov byte [esi + 0xb0], al
mov ecx, ebx
mov byte [ecx], 0x5d
mov byte [ecx + 1], 0xc9
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 7
jne 0x41173c
mov dword [esi + 4], edi
xor eax, eax
mov dword [esi + 0x10], ecx
cmp eax, 7
jae 0x4117ba
movzx edi, byte [ecx + eax]
mov edx, eax
add edx, 0xb7abe52
mov ecx, edi
and ecx, 0x69
xor ecx, 0x440d869
mov ebx, edi
xor ebx, 0x440d869
or edi, 0x96
and edi, ebx
mov ebx, 0xf48541ad
sub ebx, eax
and ebx, 0xc472d869
and edx, 0x3b8d2796
or ecx, edi
or ebx, edx
xor ecx, ebx
mov edi, dword [esi + 0x10]
xor ecx, 0xc0320000
add ecx, 0xc69a4865
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [edi + eax], cl
mov ecx, edi
add eax, 1
jmp 0x411750
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov ebx, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401af0
add esp, 0xc
cmp eax, 0
mov edi, dword [esi + 4]
je 0x411918
mov eax, dword [esi + 0x1f0]
mov al, byte [eax]
mov byte [esi + 0xb4], al
mov ecx, dword [esi + 0x70]
mov byte [ecx], 0x1a
mov byte [ecx + 1], 0x6b
mov byte [ecx + 2], 0xe6
mov eax, 3
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 4
jne 0x411806
xor eax, eax
cmp eax, 4
jae 0x41184b
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0xa9
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x56
sub edi, eax
and edi, edx
or ecx, edi
mov edi, dword [esi + 4]
add cl, 0xb3
mov edx, dword [esi + 0x70]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x70]
add eax, 1
jmp 0x411814
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401af0
add esp, 0xc
cmp eax, 0
je 0x411918
mov eax, dword [esi + 0x1ec]
mov al, byte [eax]
mov byte [esi + 0xb8], al
mov ecx, dword [esi + 0x6c]
mov byte [ecx], 0xad
mov byte [ecx + 1], 0x31
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x41188e
xor eax, eax
cmp eax, 8
jae 0x4118e6
mov ecx, dword [esi + 0x6c]
movzx ecx, byte [ecx + eax]
mov edi, eax
add edi, 0xe3a4ae8c
xor edi, ecx
mov ecx, edi
shl ecx, 1
and ecx, 2
xor ecx, 2
mov edx, edi
and edx, 1
mov ebx, 0xbc
sub ebx, edi
mov edi, dword [esi + 4]
and ebx, 0xfe
or edx, ebx
xor edx, 0xfe
add edx, ecx
mov ecx, dword [esi + 0x6c]
mov byte [ecx + eax], dl
add eax, 1
jmp 0x41189c
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401af0
add esp, 0xc
cmp eax, 0
setne al
and al, 0xff
or al, 0
xor al, 0xff
test al, 1
mov ebx, dword [esi + 0x10]
jne 0x41191a
jmp 0x41191f
jmp 0x41191a
jmp 0x413370
mov eax, dword [esi + 0x1e8]
mov al, byte [eax]
mov byte [esi + 0xbc], al
mov ecx, dword [esi + 0x68]
mov byte [ecx], 0xcb
mov byte [ecx + 1], 0x7f
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 7
jne 0x41193c
xor eax, eax
cmp eax, 7
jae 0x4119ab
movzx ecx, byte [ecx + eax]
mov edx, eax
add edx, 0x3523ed15
mov edi, edx
and edi, ecx
shl edi, 1
mov ebx, edx
sub ebx, edi
add ebx, ecx
xor ebx, 0xffffffff
and edx, ebx
shl edx, 1
sub edx, eax
mov edi, edx
add edi, 0xcadc12eb
mov ebx, ecx
xor ebx, 0xffffffff
and edi, ebx
mov ebx, 0x14
sub ebx, edx
and ebx, ecx
sub ebx, edi
mov ecx, ebx
and ecx, 0x6a
xor ecx, 0x6a
and ebx, 0x95
sub ebx, ecx
add bl, 1
mov ecx, dword [esi + 0x68]
mov byte [ecx + eax], bl
mov ecx, dword [esi + 0x68]
add eax, 1
jmp 0x41194a
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401870
add esp, 8
mov dword [esi + 0x19c], eax
mov eax, dword [esi + 0x1e4]
mov al, byte [eax]
mov byte [esi + 0xc0], al
mov ecx, dword [esi + 0x64]
mov byte [ecx], 0xba
mov byte [ecx + 1], 0xab
mov byte [ecx + 2], 0x26
mov eax, 3
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 7
jne 0x4119e7
xor eax, eax
cmp eax, 7
jae 0x411a39
movzx edx, byte [ecx + eax]
mov edi, eax
shl edi, 1
and edi, 0x33155ef2
mov ecx, eax
xor ecx, 0x198aaf79
mov ebx, ecx
and ebx, edi
shl ebx, 1
xor ecx, edi
add ecx, ebx
xor ecx, edx
mov edx, ecx
xor edx, 0x5e
shl ecx, 1
and ecx, 0x42
sub ecx, edx
add cl, 1
mov edx, dword [esi + 0x64]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x64]
add eax, 1
jmp 0x4119f5
sub esp, 8
mov dword [esp + 4], ecx
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.004018d0
add esp, 8
fnstcw word [esi + 0x26]
movzx eax, word [esi + 0x26]
or eax, 0xc00
mov word [esi + 0x11a], ax
fldcw word [esi + 0x11a]
fistp dword [esi + 0x1fc]
fldcw word [esi + 0x26]
mov eax, dword [esi + 0x1fc]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x1e0]
mov al, byte [eax]
mov byte [esi + 0xc4], al
mov ecx, dword [esi + 0x60]
mov byte [ecx], 0x3b
mov byte [ecx + 1], 0x9f
mov eax, 2
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x411a96
xor edi, edi
cmp edi, 8
jae 0x411b0f
movzx eax, byte [ecx + edi]
mov dword [esi + 0x160], eax
mov ecx, edi
add ecx, 0xb68a8525
mov edx, ecx
and edx, eax
mov eax, edx
and eax, 2
xor eax, 2
mov ebx, edx
and ebx, 0xfd
imul ebx, eax
mov eax, edx
and eax, 2
or edx, 2
imul edx, eax
add edx, ebx
add ecx, dword [esi + 0x160]
mov eax, ecx
xor eax, edx
xor edx, 0xffffffff
and ecx, edx
shl ecx, 1
sub ecx, eax
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, 0x46
add ecx, eax
mov eax, dword [esi + 0x60]
mov byte [eax + edi], cl
mov ecx, dword [esi + 0x60]
add edi, 1
jmp 0x411aa4
sub esp, 8
mov dword [esp + 4], ecx
mov eax, dword [esi + 0xc]
mov dword [esp], eax
call fcn.004018d0
add esp, 8
fnstcw word [esi + 0x24]
movzx eax, word [esi + 0x24]
or eax, 0xc00
mov word [esi + 0x118], ax
fldcw word [esi + 0x118]
fistp dword [esi + 0x1f8]
fldcw word [esi + 0x24]
mov edi, dword [esi + 0x1f8]
xor eax, eax
sub esp, 0x10
mov ebx, dword [esi + 0x1dc]
mov dword [esp], ebx
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x19c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ae30
add esp, 4
mov dword [esp], ebx
mov eax, dword [esi + 0x14]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x5c]
mov dword [esp + 8], eax
call fcn.0040b620
add esp, 0xc
test al, 1
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x3c]
jne 0x411ba9
jmp 0x411ba1
mov edi, dword [esi + 4]
jmp 0x413368
cmp edi, 0
sete al
mov byte [esi + 0x1f], al
test al, 1
jne 0x411bbb
jmp 0x412a02
mov eax, dword [esi + 0x1d8]
mov al, byte [eax]
mov byte [esi + 0xc8], al
mov edx, dword [esi + 0x15c]
mov byte [edx], 0xd4
mov byte [edx + 1], 0x47
mov eax, 2
mov byte [edx + eax], 0
add eax, 1
cmp eax, 4
jne 0x411bdb
xor eax, eax
jmp 0x411beb
cmp eax, 4
jae 0x411c23
movzx edx, byte [edx + eax]
mov edi, eax
shl edi, 1
and edi, 0x2ffce2
mov ecx, eax
xor ecx, 0x8017fe71
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, dword [esi + 0x15c]
add cl, 0xcb
mov byte [edx + eax], cl
add eax, 1
jmp 0x411beb
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00401870
add esp, 8
cmp eax, 0
je 0x411d7d
sub esp, 4
mov dword [esi + 0x168], eax
mov dword [esp], eax
call fcn.004133a0
add esp, 4
mov edi, eax
mov dword [esi + 0x128], edi
sub edi, 0x1bb934d7
add edi, 1
add edi, 0x1bb934d7
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411c84
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov ebx, eax
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esi + 0x168]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ae30
add esp, 0x10
xor eax, eax
sub esp, 0x18
mov dword [esp], 0
mov dword [esi + 0x124], ebx
mov dword [esp + 4], ebx
mov eax, dword [esi + 0x128]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov edi, dword [esi + 0x158]
mov dword [esp + 0x14], edi
call dword [0x449640]
mov eax, dword [edi]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411d12
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov ebx, dword [0x449640]
mov edi, dword [esi + 0x158]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x124]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x128]
mov dword [esp + 8], edx
mov dword [esi], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call ebx
jmp 0x411d60
sub esp, 4
mov eax, dword [esi + 0x124]
mov dword [esp], eax
call fcn.004081c0
add esp, 4
jmp 0x411d76
jmp 0x411d78
jmp 0x4121c9
call fcn.004088e0
mov ebx, eax
and ebx, 0xf
xor ebx, 0x10
add ebx, 0
xor edi, edi
mov eax, dword [esi + 0x154]
mov ecx, dword [esi + 0x58]
cmp edi, ebx
jb 0x411f7a
mov word [eax], 0
mov eax, dword [esi + 0x1d4]
mov al, byte [eax]
mov byte [esi + 0xcc], al
mov byte [ecx], 0xed
mov byte [ecx + 1], 0xc9
mov byte [ecx + 2], 0xba
mov byte [ecx + 3], 0xcf
mov byte [ecx + 4], 0x89
mov byte [ecx + 5], 0xcd
mov byte [ecx + 6], 0xbf
mov byte [ecx + 7], 0xc3
mov byte [ecx + 8], 0xb0
mov byte [ecx + 9], 0xc1
mov byte [ecx + 0xa], 0xe3
mov byte [ecx + 0xb], 0xc7
mov byte [ecx + 0xc], 0xa8
mov byte [ecx + 0xd], 0xc5
mov byte [ecx + 0xe], 0xfa
mov byte [ecx + 0xf], 0xfb
mov eax, 0x10
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x13
jne 0x411df7
xor edx, edx
cmp edx, 0x13
jae 0x411e9e
movzx eax, byte [ecx + edx]
mov dword [esi + 0x120], eax
mov edi, edx
and edi, 0x31b600d0
mov ebx, edx
and ebx, 2
xor ebx, 2
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x28]
and edx, 0x31b600d0
imul edx, ebx
mov ebx, dword [esi + 0x28]
and ebx, 2
or edi, 2
imul edi, ebx
add edi, edx
mov edx, dword [esi + 0x28]
xor edx, 0x31b600d2
add edx, edi
mov edi, eax
shl edi, 1
or edi, 1
mov ebx, eax
xor ebx, 0xffffffff
mov eax, edi
add eax, ebx
shl eax, 1
mov ecx, dword [esi + 0x120]
sub ecx, edi
add ecx, eax
add ecx, 1
mov ebx, edx
and ebx, ecx
mov ecx, dword [esi + 0x58]
mov eax, dword [esi + 0x120]
mov edi, eax
shl edi, 1
xor edi, 0xffffffff
add edi, eax
xor edx, 0xffffffff
and edi, edx
mov edx, dword [esi + 0x28]
or ebx, edi
mov al, 0xe5
sub al, bl
mov byte [ecx + edx], al
add edx, 1
jmp 0x411e05
sub esp, 8
mov edi, dword [esi + 0x150]
mov dword [esp], edi
mov dword [esp + 4], ecx
call fcn.00409ee0
mov dword [esp], eax
mov eax, dword [esi + 0x154]
mov dword [esp + 4], eax
call fcn.00409ee0
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 + 0x16c], eax
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov edi, dword [esi + 0x14c]
mov dword [esp + 0x14], edi
call dword [0x449640]
mov eax, dword [edi]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411f21
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov ebx, dword [0x449640]
mov edi, dword [esi + 0x14c]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x150]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x16c]
mov dword [esp + 8], edx
mov dword [esi], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edi
call ebx
mov eax, dword [esi + 0x3c]
cmp eax, 0
je 0x411fb9
jmp 0x41204b
mov dword [esi + 0x164], eax
call fcn.004088e0
mov ecx, 0x24
cdq
idiv ecx
movsx ecx, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esi + 0x164]
mov eax, edx
add eax, 2
mov word [edx], cx
mov ecx, edi
and ecx, 1
mov edx, edi
or edx, 1
mov edi, ecx
add edi, edx
mov ecx, dword [esi + 0x58]
jmp 0x411d98
mov ecx, dword [esi + 0x54]
jmp 0x411fbe
mov eax, dword [esi + 0x1d0]
mov al, byte [eax]
mov byte [esi + 0xd0], al
mov byte [ecx], 0x7a
mov byte [ecx + 1], 0x89
mov byte [ecx + 2], 0x2b
mov byte [ecx + 3], 0x8f
mov byte [ecx + 4], 4
mov byte [ecx + 5], 0x8d
mov byte [ecx + 6], 0x27
mov byte [ecx + 7], 0x83
mov byte [ecx + 8], 0x80
mov byte [ecx + 9], 0x81
mov eax, 0xa
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xf
jne 0x411ff8
xor eax, eax
cmp eax, 0xf
jae 0x412030
movzx edx, byte [ecx + eax]
mov edi, eax
add edi, 0x62
mov ecx, eax
add ecx, 0x62
and ecx, edx
or edi, edx
xor ecx, edi
add cl, 0x16
mov edx, dword [esi + 0x54]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x54]
add eax, 1
jmp 0x412006
sub esp, 8
mov eax, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004137b0
add esp, 8
jmp 0x412046
jmp 0x4121c9
cmp eax, 1
jne 0x412105
mov ecx, dword [esi + 0x148]
mov eax, dword [esi + 0x1cc]
mov al, byte [eax]
mov byte [esi + 0xd4], al
mov byte [ecx], 0xfa
mov byte [ecx + 1], 0xc9
mov byte [ecx + 2], 0xba
mov byte [ecx + 3], 0xd7
mov byte [ecx + 4], 0xa0
mov byte [ecx + 5], 0xd5
mov byte [ecx + 6], 0xa6
mov byte [ecx + 7], 0xd3
mov byte [ecx + 8], 0xd0
mov byte [ecx + 9], 0xd1
mov eax, 0xa
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xe
jne 0x412094
xor eax, eax
cmp eax, 0xe
jae 0x4120ec
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0xbf53fc4e
mov edi, 0xb1
sub edi, eax
mov ebx, 0xb1
sub ebx, eax
and edi, ebx
or ecx, edx
xor edx, 0xffffffff
or edi, edx
and ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0xf2
xor ecx, 0x86
sub edx, ecx
mov ecx, dword [esi + 0x148]
mov byte [ecx + eax], dl
add eax, 1
jmp 0x4120a2
sub esp, 8
mov eax, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004137b0
add esp, 8
jmp 0x4121c9
cmp eax, 2
jne 0x4121c9
mov eax, dword [esi + 0x1c8]
mov al, byte [eax]
mov byte [esi + 0xd8], al
mov ecx, dword [esi + 0x50]
mov byte [ecx], 0x6e
mov byte [ecx + 1], 0x3b
mov byte [ecx + 2], 0xaa
mov byte [ecx + 3], 0x39
mov byte [ecx + 4], 0xa5
mov byte [ecx + 5], 0x27
mov byte [ecx + 6], 0x79
mov byte [ecx + 7], 0x25
mov byte [ecx + 8], 0x24
mov byte [ecx + 9], 0x23
mov eax, 0xa
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0xf
jne 0x41214b
jmp 0x412159
xor eax, eax
jmp 0x41215d
cmp eax, 0xf
jae 0x4121ae
mov ebx, dword [esi + 0x50]
movzx edx, byte [ebx + eax]
mov ecx, eax
add ecx, 0x633776d
mov edi, 0x79cc8892
sub edi, eax
and edi, 0x92b4c1e2
and ecx, 0x6d4b3e1d
sub ecx, edi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x90
mov edi, ecx
shl edi, 1
and edi, 0x90
add ecx, 0x48
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [ebx + eax], cl
add eax, 1
jmp 0x41215d
jmp 0x4121b0
mov eax, dword [esi + 0x50]
sub esp, 8
mov ecx, dword [esi]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004137b0
add esp, 8
jmp 0x4121c9
xor eax, eax
sub esp, 0x1c
mov eax, dword [esi]
mov dword [esp], eax
mov eax, dword [esi + 0x144]
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.0043c4b0
add esp, 0x1c
mov ebx, eax
cmp ebx, 0
jl 0x412352
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
mov ebx, dword [esi + 0x144]
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.0043cb50
add esp, 0x10
mov dword [esi + 0x198], eax
mov eax, dword [ebx]
mov dword [esi + 0x194], eax
mov al, byte [esi + 0xa4]
mov byte [esi + 0x104], al
mov byte [esi + 0xa8], 0x1b
mov byte [esi + 0xa9], 0x1a
mov byte [esi + 0xaa], 0x1d
mov byte [esi + 0xab], 0x1c
mov eax, 4
mov byte [esi + eax + 0xa8], 0
add eax, 1
cmp eax, 5
jne 0x412285
xor eax, eax
cmp eax, 5
jae 0x4122cb
mov dl, byte [esi + eax + 0xa8]
mov ecx, eax
add ecx, 0xb
mov edi, 0x74
sub edi, eax
and edi, 0x91
and ecx, 0x6e
sub ecx, edi
xor cl, dl
add cl, 0x1e
mov byte [esi + eax + 0xa8], cl
add eax, 1
jmp 0x412297
mov ecx, dword [esi + 0xa8]
xor edi, edi
cmp edi, dword [0x449644]
jb 0x4122dd
jmp 0x41234c
mov eax, dword [0x449648]
cmp dword [eax + edi*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x4122f3
jmp 0x412337
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412337
mov dword [esi + 0x184], ecx
mov ecx, dword [0x44964c]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esi + 0x194]
mov dword [esp + 0xc], eax
mov byte [esi + 0x1b], dl
call fcn.00438a80
mov dl, byte [esi + 0x1b]
mov ecx, dword [esi + 0x184]
add esp, 0x10
test dl, 1
je 0x41233e
jmp 0x41234c
mov eax, edi
xor eax, 1
shl edi, 1
and edi, 2
add edi, eax
jmp 0x4122d3
mov ebx, dword [esi + 0x198]
mov edi, dword [esi + 0x14]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], eax
call fcn.00435570
add esp, 4
mov dword [edi], 0
cmp ebx, 0
setge al
test al, 1
mov edi, dword [esi + 4]
mov ebx, dword [esi + 0x10]
mov ecx, dword [esi + 0x3c]
jne 0x412391
jmp 0x412380
mov dword [esi + 8], 0
mov eax, 4
jmp 0x4129f4
cmp ecx, 1
sete al
test al, 1
jne 0x4123a0
jmp 0x412709
mov eax, dword [esi + 0x1c4]
mov al, byte [eax]
mov byte [esi + 0xdc], al
mov edi, dword [esi + 0x140]
mov byte [edi], 0x52
mov byte [edi + 1], 0x5b
mov byte [edi + 2], 0xce
mov eax, 3
mov byte [edi + eax], 0
add eax, 1
cmp eax, 4
jne 0x4123c4
xor eax, eax
cmp eax, 4
jae 0x412424
movzx edx, byte [edi + eax]
mov edi, eax
shl edi, 1
and edi, 0x78ebaca4
mov ecx, eax
xor ecx, 0x3c75d652
add ecx, edi
xor ecx, edx
add ecx, 0xd1b2d065
mov edx, ecx
and edx, 1
mov edi, ecx
and edi, 0xfffffffe
mov ebx, ecx
xor ebx, 1
add ecx, ebx
mov ebx, dword [esi + 0x140]
sub ecx, edi
mov edi, edx
and edi, ecx
shl edi, 1
xor edx, ecx
add edx, edi
mov edi, ebx
mov byte [edi + eax], dl
add eax, 1
jmp 0x4123d2
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401870
add esp, 8
mov ebx, eax
mov eax, dword [esi + 0x1c0]
mov al, byte [eax]
mov byte [esi + 0xe0], al
mov ecx, dword [esi + 0x13c]
mov byte [ecx], 0x29
mov byte [ecx + 1], 0x3f
mov byte [ecx + 2], 0x8e
mov eax, 3
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 5
jne 0x41245f
xor eax, eax
cmp eax, 5
jae 0x4124b5
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0x62
and ecx, edx
xor edx, 0xffffffff
mov edi, 0xfec2979d
sub edi, eax
and edi, edx
or ecx, edi
mov edi, ecx
and edi, 1
add ecx, 0xeb
and ecx, 0xfe
mov edx, edi
shl edx, 1
or ecx, edi
xor ecx, 0xffffffff
add edx, ecx
mov ecx, dword [esi + 0x13c]
mov byte [ecx + eax], dl
add eax, 1
jmp 0x41246d
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401870
add esp, 8
mov dword [esi + 0x38], eax
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00413800
add esp, 4
mov edi, eax
cmp ebx, 0
setne al
mov dword [esi + 0x34], 0
mov byte [esi + 0x1e], al
test al, 1
jne 0x4124f5
jmp 0x412512
sub esp, 4
mov dword [esp], ebx
call fcn.004082d0
add esp, 4
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov dword [esi + 0x34], ecx
jmp 0x412512
cmp dword [esi + 0x38], 0
setne cl
xor eax, eax
mov byte [esi + 0x1d], cl
test cl, 1
jne 0x412525
jmp 0x412539
sub esp, 4
mov eax, dword [esi + 0x38]
mov dword [esp], eax
call fcn.004082d0
add esp, 4
sub eax, 0xffffffff
mov dword [esi + 0x1a4], ebx
add edi, 9
add edi, dword [esi + 0x34]
mov ecx, edi
and ecx, eax
mov dword [esi + 0x1a0], eax
or edi, eax
add edi, ecx
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41256e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x1bc]
mov al, byte [eax]
mov byte [esi + 0xe4], al
mov ecx, dword [esi + 0x4c]
mov byte [ecx], 0xa2
mov byte [ecx + 1], 0x31
mov byte [ecx + 2], 0xbf
mov byte [ecx + 3], 0x33
mov byte [ecx + 4], 0xba
mov byte [ecx + 5], 0x2d
mov byte [ecx + 6], 0xb2
mov byte [ecx + 7], 0x2f
mov byte [ecx + 8], 0xbc
mov byte [ecx + 9], 0x29
mov byte [ecx + 0xa], 0xbe
mov byte [ecx + 0xb], 0x2b
mov byte [ecx + 0xc], 0x77
mov byte [ecx + 0xd], 0x25
mov byte [ecx + 0xe], 0x74
mov byte [ecx + 0xf], 0x27
mov byte [ecx + 0x10], 0x20
mov byte [ecx + 0x11], 0x21
mov eax, 0x12
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x17
jne 0x4125db
xor eax, eax
cmp eax, 0x17
jae 0x41261b
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0x8c
mov edi, 0x73
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
add cl, 0x44
mov edx, dword [esi + 0x4c]
mov byte [edx + eax], cl
mov ecx, dword [esi + 0x4c]
add eax, 1
jmp 0x4125e9
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00409ee0
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 eax, dword [esi]
mov dword [esp + 4], eax
call fcn.00409ee0
add esp, 8
mov edi, eax
add edi, 2
mov word [eax], 0x22
jmp 0x412660
mov dword [esi + 8], ebx
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.004081c0
add esp, 4
mov ebx, dword [esi + 0x10]
jmp 0x412678
test byte [esi + 0x1e], 1
jne 0x412680
jmp 0x4126bc
mov ebx, edi
add ebx, 2
mov word [edi], 0x2c
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov eax, dword [esi + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x1a4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ae30
add esp, 0x10
shl eax, 1
add ebx, eax
mov edi, ebx
mov ebx, dword [esi + 0x10]
test byte [esi + 0x1d], 1
jne 0x4126c4
jmp 0x4126f9
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [esi + 0x1a0]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ae30
add esp, 0x10
jmp 0x4126f9
mov dword [esi], 0
xor ecx, ecx
mov edi, dword [esi + 4]
jmp 0x4129f2
mov dword [esi + 8], 0
cmp ecx, 2
je 0x41271a
jmp 0x4129f2
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00413800
add esp, 4
add eax, 0x895a675e
sub eax, 0x895a6741
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 0x412754
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x1b8]
mov al, byte [eax]
mov byte [esi + 0xe8], al
mov ecx, dword [esi + 0x48]
mov byte [ecx], 0xe6
mov byte [ecx + 1], 0x87
mov byte [ecx + 2], 0x86
mov byte [ecx + 3], 0x81
mov eax, 4
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 8
jne 0x412789
mov dword [esi + 8], edx
xor eax, eax
cmp eax, 8
jae 0x41280a
movzx ebx, byte [ecx + eax]
mov dword [esi + 0x11c], ebx
mov edx, eax
add edx, 0x21
mov ecx, 0xde
sub ecx, eax
mov edi, 0xde
sub edi, eax
and ecx, edi
or ecx, ebx
mov edi, 0x5e
sub edi, eax
and edi, 0x48
and edx, 0xb7
or edi, edx
xor edi, 0xb7
mov edx, ebx
add edx, 1
mov ebx, dword [esi + 0x11c]
xor ebx, 0xffffffff
or edi, ebx
mov ebx, edi
add ebx, edx
shl ebx, 1
add edi, dword [esi + 0x11c]
sub edi, ebx
and ecx, edi
mov edi, dword [esi + 4]
mov dl, 0x5a
sub dl, cl
mov ecx, dword [esi + 0x48]
mov byte [ecx + eax], dl
add eax, 1
jmp 0x41279a
mov eax, dword [esi + 0x1b4]
mov al, byte [eax]
mov byte [esi + 0xec], al
mov ecx, dword [esi + 0x44]
mov byte [ecx], 0xf0
mov byte [ecx + 1], 0x61
mov byte [ecx + 2], 0xfd
mov byte [ecx + 3], 0x63
mov byte [ecx + 4], 0xf3
mov byte [ecx + 5], 0x65
mov byte [ecx + 6], 0xc3
mov byte [ecx + 7], 0x67
mov byte [ecx + 8], 0xca
mov byte [ecx + 9], 0x59
mov byte [ecx + 0xa], 0xc9
mov byte [ecx + 0xb], 0x5b
mov byte [ecx + 0xc], 0xc4
mov byte [ecx + 0xd], 0x5d
mov byte [ecx + 0xe], 0xfb
mov byte [ecx + 0xf], 0x5f
mov byte [ecx + 0x10], 0xcc
mov byte [ecx + 0x11], 0x51
mov byte [ecx + 0x12], 0xce
mov byte [ecx + 0x13], 0x53
mov byte [ecx + 0x14], 0xb4
mov byte [ecx + 0x15], 0x55
mov byte [ecx + 0x16], 0x8b
mov byte [ecx + 0x17], 0x57
mov byte [ecx + 0x18], 0xed
mov byte [ecx + 0x19], 0x49
mov byte [ecx + 0x1a], 0xc2
mov byte [ecx + 0x1b], 0x4b
mov byte [ecx + 0x1c], 0xe9
mov byte [ecx + 0x1d], 0x4d
mov byte [ecx + 0x1e], 0xed
mov byte [ecx + 0x1f], 0x4f
mov byte [ecx + 0x20], 0xa0
mov byte [ecx + 0x21], 0x41
mov byte [ecx + 0x22], 0xe0
mov byte [ecx + 0x23], 0x43
mov byte [ecx + 0x24], 0xcd
mov byte [ecx + 0x25], 0x45
mov byte [ecx + 0x26], 0xd6
mov byte [ecx + 0x27], 0x47
mov byte [ecx + 0x28], 0x99
mov byte [ecx + 0x29], 0x39
mov byte [ecx + 0x2a], 0xa9
mov byte [ecx + 0x2b], 0x3b
mov byte [ecx + 0x2c], 0xaf
mov byte [ecx + 0x2d], 0x3d
mov byte [ecx + 0x2e], 0xde
mov byte [ecx + 0x2f], 0x3f
mov byte [ecx + 0x30], 0xed
mov byte [ecx + 0x31], 0x31
mov byte [ecx + 0x32], 0x94
mov byte [ecx + 0x33], 0x33
mov byte [ecx + 0x34], 0xd4
mov byte [ecx + 0x35], 0x35
mov byte [ecx + 0x36], 0xd4
mov byte [ecx + 0x37], 0x37
mov byte [ecx + 0x38], 0x28
mov byte [ecx + 0x39], 0x29
mov eax, 0x3a
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x3f
jne 0x412907
xor eax, eax
mov ebx, dword [esi + 8]
cmp eax, 0x3f
jae 0x4129bb
movzx edx, byte [ecx + eax]
mov ecx, eax
add ecx, 0x2e3db318
mov edi, ecx
and edi, edx
mov dword [esi + 0x20], eax
mov eax, edi
and eax, 2
xor eax, 2
mov ebx, edi
and ebx, 0xfd
imul ebx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edi, ebx
mov ebx, dword [esi + 8]
mov eax, edi
xor eax, 0xffffffff
and ecx, eax
mov eax, 0xd1c24ce7
sub eax, dword [esi + 0x20]
and edi, eax
sub ecx, edi
mov edi, dword [esi + 4]
add ecx, edx
mov eax, ecx
add eax, 1
mov edx, ecx
xor edx, 0xffffffff
or edx, 0x87
add edx, eax
mov eax, ecx
and eax, 0x87
xor eax, 0xffffffff
add ecx, 0x88
add ecx, eax
add ecx, edx
add cl, 1
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x20]
mov byte [eax + edx], cl
mov ecx, dword [esi + 0x44]
mov eax, dword [esi + 0x20]
shl eax, 1
and eax, 2
xor dword [esi + 0x20], 1
add dword [esi + 0x20], eax
mov eax, dword [esi + 0x20]
jmp 0x412918
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00409ee0
mov dword [esp], eax
mov eax, dword [esi]
mov dword [esp + 4], eax
call fcn.00409ee0
mov dword [esp], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 4], eax
call fcn.00409ee0
add esp, 8
mov ecx, 2
mov ebx, dword [esi + 0x10]
xor eax, eax
cmp eax, 0
je 0x412c4b
jmp 0x413368
xor edi, 1
mov eax, ecx
xor eax, 2
or edi, eax
sete al
mov dword [esi + 8], 0
test al, 1
mov dword [esi], 0
mov edi, dword [esi + 4]
jne 0x412a28
jmp 0x412c4b
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.004133a0
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 0x412a58
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov edx, eax
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
xor ecx, ecx
sub esp, 0x10
mov dword [esi + 0x12c], edx
mov dword [esp], edx
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ae30
add esp, 0x10
mov eax, dword [esi + 0x5c]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0x18
shl ecx, 1
xor eax, 0x18
add eax, ecx
sub eax, 0x4dfafb22
add eax, 1
add eax, 0x4dfafb22
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412ac7
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004081b0
add esp, 4
mov ebx, eax
mov eax, dword [esi + 0x1b0]
mov al, byte [eax]
mov byte [esi + 0xf0], al
mov ecx, dword [esi + 0x138]
mov byte [ecx], 0x90
mov byte [ecx + 1], 0x21
mov byte [ecx + 2], 0x9d
mov byte [ecx + 3], 0x23
mov byte [ecx + 4], 0x93
mov byte [ecx + 5], 0x25
mov byte [ecx + 6], 0x83
mov byte [ecx + 7], 0x27
mov byte [ecx + 8], 0x8a
mov byte [ecx + 9], 0x39
mov byte [ecx + 0xa], 0x89
mov byte [ecx + 0xb], 0x3b
mov byte [ecx + 0xc], 0x84
mov byte [ecx + 0xd], 0x3d
mov byte [ecx + 0xe], 0x9b
mov byte [ecx + 0xf], 0x3f
mov byte [ecx + 0x10], 0x8c
mov byte [ecx + 0x11], 0x31
mov byte [ecx + 0x12], 0x8e
mov byte [ecx + 0x13], 0x33
mov byte [ecx + 0x14], 0x54
mov byte [ecx + 0x15], 0x35
mov byte [ecx + 0x16], 0x4b
mov byte [ecx + 0x17], 0x37
mov byte [ecx + 0x18], 0xad
mov byte [ecx + 0x19], 9
mov byte [ecx + 0x1a], 0x82
mov byte [ecx + 0x1b], 0xb
mov byte [ecx + 0x1c], 0xa9
mov byte [ecx + 0x1d], 0xd
mov byte [ecx + 0x1e], 0xad
mov byte [ecx + 0x1f], 0xf
mov byte [ecx + 0x20], 0x60
mov byte [ecx + 0x21], 1
mov byte [ecx + 0x22], 0xa0
mov byte [ecx + 0x23], 3
mov byte [ecx + 0x24], 0x8d
mov byte [ecx + 0x25], 5
mov byte [ecx + 0x26], 0xb6
mov byte [ecx + 0x27], 7
mov byte [ecx + 0x28], 0xb9
mov byte [ecx + 0x29], 0x19
mov byte [ecx + 0x2a], 0xa9
mov byte [ecx + 0x2b], 0x1b
mov byte [ecx + 0x2c], 0xaf
mov byte [ecx + 0x2d], 0x1d
mov byte [ecx + 0x2e], 0x7e
mov byte [ecx + 0x2f], 0x1f
mov byte [ecx + 0x30], 0x10
mov byte [ecx + 0x31], 0x11
mov eax, 0x32
mov edi, dword [esi + 4]
mov byte [ecx + eax], 0
add eax, 1
cmp eax, 0x35
jne 0x412bba
xor eax, eax
cmp eax, 0x35
jae 0x412c01
mov dl, byte [ecx + eax]
mov ecx, eax
add ecx, 8
mov edi, 0xf7
sub edi, eax
and edi, 0x91
and ecx, 0x6e
or ecx, edi
mov edi, dword [esi + 4]
xor cl, dl
xor cl, 0x6e
mov dl, 0xd7
sub dl, cl
mov ecx, dword [esi + 0x138]
mov byte [ecx + eax], dl
add eax, 1
jmp 0x412bc8
sub esp, 8
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.00409ee0
mov dword [esp], eax
mov eax, dword [esi + 0x12c]
mov dword [esp + 4], eax
call fcn.00409ee0
add esp, 8
mov dword [esi + 8], ebx
sub esp, 4
mov eax, dword [esi + 0x12c]
mov dword [esp], eax
call fcn.004081c0
add esp, 4
jmp 0x412c3e
mov dword [esi], 0
mov ecx, 2
jmp 0x412c4b
test ecx, ecx
je 0x412c6f
jmp 0x412c51
mov eax, ecx
sub eax, 1
je 0x412e17
jmp 0x412c5e
sub ecx, 2
mov ebx, dword [esi + 8]
je 0x4130a2
jmp 0x413326
test byte [esi + 0x1f], 1
jne 0x412c7a
jmp 0x412e17
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x1ac]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov edi, edx
mov eax, dword [0x449638]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043bcb0
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov ecx, dword [esi]
mov dword [esp], ecx
mov ebx, dword [esi + 8]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], edi
mov ecx, dword [esi + 0x134]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
je 0x412e0f
mov eax, dword [esi + 0x134]
mov eax, dword [eax]
mov dword [esi + 0x188], eax
mov al, byte [esi + 0x98]
mov byte [esi + 0x108], al
mov byte [esi + 0x9c], 0x1b
mov byte [esi + 0x9d], 0x1a
mov byte [esi + 0x9e], 0x1d
mov byte [esi + 0x9f], 0x1c
mov eax, 4
mov byte [esi + eax + 0x9c], 0
add eax, 1
cmp eax, 5
jne 0x412d48
xor eax, eax
cmp eax, 5
jae 0x412d8e
mov dl, byte [esi + eax + 0x9c]
mov ecx, eax
add ecx, 0xb
mov edi, 0x74
sub edi, eax
and edi, 0x91
and ecx, 0x6e
sub ecx, edi
xor cl, dl
add cl, 0x1e
mov byte [esi + eax + 0x9c], cl
add eax, 1
jmp 0x412d5a
mov ecx, dword [esi + 0x9c]
xor edi, edi
cmp edi, dword [0x449644]
jb 0x412da0
jmp 0x412e0f
mov eax, dword [0x449648]
cmp dword [eax + edi*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x412db6
jmp 0x412dfa
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412dfa
mov dword [esi + 0x174], ecx
mov ecx, dword [0x44964c]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esi + 0x188]
mov dword [esp + 0xc], eax
mov byte [esi + 0x18], dl
call fcn.00438a80
mov dl, byte [esi + 0x18]
mov ecx, dword [esi + 0x174]
add esp, 0x10
test dl, 1
je 0x412e01
jmp 0x412e0f
mov eax, edi
xor eax, 1
shl edi, 1
and edi, 2
add edi, eax
jmp 0x412d96
mov edi, dword [esi + 4]
jmp 0x413326
mov eax, dword [0x449638]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0xe117db1e
call fcn.0043bcb0
add esp, 8
cmp eax, 0
setne cl
test cl, 1
mov ebx, dword [esi + 8]
jne 0x412e40
test cl, 1
jne 0x412e47
xor eax, eax
mov ecx, dword [esi + 0x14]
mov ecx, dword [ecx]
xor edx, edx
lea edx, [0x41d700]
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 + 0x30], eax
cmp dword [esi + 0x30], 0
setne cl
jmp 0x412e8c
jmp 0x412e8e
test cl, 1
jne 0x412e98
jmp 0x41309d
mov ecx, dword [esi + 0x130]
mov dword [ecx + 4], 0xffffffff
mov dword [ecx], 0xdc3cba00
mov cl, byte [esi + 0xf4]
mov byte [esi + 0x100], cl
mov byte [esi + 0xf8], 0x1b
mov byte [esi + 0xf9], 0x1a
mov byte [esi + 0xfa], 0x1d
mov byte [esi + 0xfb], 0x1c
mov ecx, 4
mov byte [esi + ecx + 0xf8], 0
add ecx, 1
cmp ecx, 5
jne 0x412ed8
xor ecx, ecx
cmp ecx, 5
jae 0x412f1e
mov bl, byte [esi + ecx + 0xf8]
mov edx, ecx
add edx, 0xb
mov edi, 0x74
sub edi, ecx
and edi, 0x91
and edx, 0x6e
sub edx, edi
xor dl, bl
add dl, 0x1e
mov byte [esi + ecx + 0xf8], dl
add ecx, 1
jmp 0x412eea
mov eax, dword [esi + 0xf8]
xor edi, edi
cmp edi, dword [0x449644]
jb 0x412f30
jmp 0x412fa6
mov ecx, dword [0x449648]
cmp dword [ecx + edi*8], 0x4e66b5a3
sete bl
mov byte [esi + 0x1c], bl
test bl, 1
jne 0x412f4a
jmp 0x412f99
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x412f99
mov edx, dword [0x44964c]
mov dword [esi + 0x170], eax
xor ebx, ebx
sub esp, 0x18
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov eax, dword [esi + 0x30]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov ecx, dword [esi + 0x130]
mov dword [esp + 0x14], ecx
call fcn.00438a80
add esp, 0x18
mov eax, dword [esi + 0x170]
test byte [esi + 0x1c], 1
je 0x412fa1
jmp 0x412fa6
add edi, 1
jmp 0x412f26
mov cl, byte [esi + 0x8c]
mov byte [esi + 0x10c], cl
mov byte [esi + 0x90], 0x1b
mov byte [esi + 0x91], 0x1a
mov byte [esi + 0x92], 0x1d
mov byte [esi + 0x93], 0x1c
mov ecx, 4
mov byte [esi + ecx + 0x90], 0
add ecx, 1
cmp ecx, 5
jne 0x412fd3
xor ecx, ecx
cmp ecx, 5
jae 0x413019
mov bl, byte [esi + ecx + 0x90]
mov edx, ecx
add edx, 0xb
mov edi, 0x74
sub edi, ecx
and edi, 0x91
and edx, 0x6e
sub edx, edi
xor dl, bl
add dl, 0x1e
mov byte [esi + ecx + 0x90], dl
add ecx, 1
jmp 0x412fe5
mov edx, dword [esi + 0x90]
xor edi, edi
mov ebx, dword [esi + 8]
cmp edi, dword [0x449644]
jb 0x41302e
jmp 0x41309a
mov ecx, dword [0x449648]
cmp dword [ecx + edi*8], 0xb62b8d10
sete al
test al, 1
jne 0x413044
jmp 0x413086
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, edx
je 0x413086
mov dword [esi + 0x178], edx
mov edx, dword [0x44964c]
sub esp, 0x10
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov bl, al
mov eax, dword [esi + 0x30]
mov dword [esp + 0xc], eax
call fcn.00438a80
mov edx, dword [esi + 0x178]
add esp, 0x10
mov al, bl
mov ebx, dword [esi + 8]
test al, 1
je 0x41308c
jmp 0x41309a
mov ecx, edi
xor ecx, 1
shl edi, 1
and edi, 2
add edi, ecx
jmp 0x413024
mov edi, dword [esi + 4]
jmp 0x413326
call fcn.00413830
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x1a8]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov edi, edx
mov eax, dword [0x449638]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x38c42730
call fcn.0043bcb0
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov dword [esp], 0
mov dword [esp + 4], ebx
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], edi
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
setne al
test al, 1
mov edi, dword [esi + 4]
jne 0x41313f
jmp 0x413326
mov eax, dword [esi + 0x40]
mov eax, dword [eax + 4]
mov dword [esi + 0x190], eax
mov al, byte [esi + 0x80]
mov byte [esi + 0x110], al
mov byte [esi + 0x84], 0x1b
mov byte [esi + 0x85], 0x1a
mov byte [esi + 0x86], 0x1d
mov byte [esi + 0x87], 0x1c
mov eax, 4
mov byte [esi + eax + 0x84], 0
add eax, 1
cmp eax, 5
jne 0x413178
xor eax, eax
cmp eax, 5
jae 0x4131be
mov dl, byte [esi + eax + 0x84]
mov ecx, eax
add ecx, 0xb
mov edi, 0x74
sub edi, eax
and edi, 0x91
and ecx, 0x6e
sub ecx, edi
xor cl, dl
add cl, 0x1e
mov byte [esi + eax + 0x84], cl
add eax, 1
jmp 0x41318a
mov ecx, dword [esi + 0x84]
xor edi, edi
cmp edi, dword [0x449644]
jb 0x4131d0
jmp 0x41323f
mov eax, dword [0x449648]
cmp dword [eax + edi*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x4131e6
jmp 0x41322a
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41322a
mov dword [esi + 0x180], ecx
mov ecx, dword [0x44964c]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esi + 0x190]
mov dword [esp + 0xc], eax
mov byte [esi + 0x1a], dl
call fcn.00438a80
mov dl, byte [esi + 0x1a]
mov ecx, dword [esi + 0x180]
add esp, 0x10
test dl, 1
je 0x413231
jmp 0x41323f
mov eax, edi
xor eax, 1
shl edi, 1
and edi, 2
add edi, eax
jmp 0x4131c6
mov eax, dword [esi + 0x40]
mov eax, dword [eax]
mov dword [esi + 0x18c], eax
mov al, byte [esi + 0x74]
mov byte [esi + 0x114], al
mov byte [esi + 0x78], 0x1b
mov byte [esi + 0x79], 0x1a
mov byte [esi + 0x7a], 0x1d
mov byte [esi + 0x7b], 0x1c
mov eax, 4
mov byte [esi + eax + 0x78], 0
add eax, 1
cmp eax, 5
jne 0x413268
xor eax, eax
cmp eax, 5
jae 0x4132a5
mov dl, byte [esi + eax + 0x78]
mov ecx, eax
add ecx, 0xb
mov edi, 0x74
sub edi, eax
and edi, 0x91
and ecx, 0x6e
sub ecx, edi
xor cl, dl
add cl, 0x1e
mov byte [esi + eax + 0x78], cl
add eax, 1
jmp 0x413277
mov ecx, dword [esi + 0x78]
xor edi, edi
cmp edi, dword [0x449644]
jb 0x4132b4
jmp 0x413323
mov eax, dword [0x449648]
cmp dword [eax + edi*8], 0xb62b8d10
sete dl
test dl, 1
jne 0x4132ca
jmp 0x41330e
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41330e
mov dword [esi + 0x17c], ecx
mov ecx, dword [0x44964c]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 1
mov eax, dword [esi + 0x18c]
mov dword [esp + 0xc], eax
mov byte [esi + 0x19], dl
call fcn.00438a80
mov dl, byte [esi + 0x19]
mov ecx, dword [esi + 0x17c]
add esp, 0x10
test dl, 1
je 0x413315
jmp 0x413323
mov eax, edi
xor eax, 1
shl edi, 1
and edi, 2
add edi, eax
jmp 0x4132aa
mov edi, dword [esi + 4]
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
sub esp, 4
mov dword [esp], eax
call fcn.00435570
add esp, 4
cmp dword [esi], 0
je 0x413350
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.004081c0
add esp, 4
jmp 0x413350
cmp ebx, 0
je 0x413363
sub esp, 4
mov dword [esp], ebx
call fcn.004081c0
add esp, 4
mov ebx, dword [esi + 0x10]
jmp 0x413368
jmp 0x41336a
jmp 0x41336c
jmp 0x41336e
jmp 0x413370
mov ecx, dword [esi + 0x2c]
mov eax, ecx
and eax, 1
or ecx, 1
add ecx, eax
mov dword [esi + 0x2c], ecx
jmp 0x4116e7
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret