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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x250
mov esi, esp
mov edi, dword [ebp + 8]
call fcn.00413820
push eax
mov dword [esi + 0x23c], esp
push eax
mov dword [esi + 0x238], esp
push eax
mov dword [esi + 0xac], esp
push eax
mov dword [esi + 0x234], esp
push eax
mov dword [esi + 0x160], esp
push eax
mov dword [esi + 0x230], esp
push eax
mov dword [esi + 0x22c], esp
push eax
mov dword [esi + 0x228], esp
push eax
mov dword [esi + 0xa8], esp
push eax
mov dword [esi + 0x224], esp
push eax
mov dword [esi + 0x220], esp
push eax
mov dword [esi + 0x21c], esp
sub esp, 0x400
mov dword [esi + 0x218], esp
push eax
mov ebx, esp
push eax
mov dword [esi + 0xa0], esp
push eax
mov dword [esi + 0x15c], esp
push eax
mov dword [esi + 0x214], esp
push eax
mov dword [esi + 0x9c], esp
push eax
mov dword [esi + 0x58], esp
push eax
mov dword [esi + 0x210], esp
sub esp, 0x40
mov dword [esi + 0x158], esp
push eax
mov dword [esi + 0x54], esp
push eax
mov dword [esi + 0x20c], esp
sub esp, 0x60
mov dword [esi + 0x154], esp
sub esp, 0x10
mov dword [esi + 0x50], esp
push eax
mov dword [esi + 0x208], esp
push eax
mov dword [esi + 0x98], esp
push eax
mov dword [esi + 0x4c], esp
push eax
mov dword [esi + 0x204], esp
sub esp, 0xc
mov dword [esi + 0x48], esp
push eax
mov dword [esi + 0x200], esp
sub esp, 0xc
mov dword [esi + 0x44], esp
push eax
mov dword [esi + 0x1fc], esp
sub esp, 0xc
mov dword [esi + 0x40], esp
push eax
mov dword [esi + 0x1f8], esp
push eax
mov dword [esi + 0x94], esp
push eax
mov dword [esi + 0x3c], esp
push eax
mov dword [esi + 0x1f4], esp
push eax
mov dword [esi + 0x38], esp
push eax
mov dword [esi + 0x1f0], esp
sub esp, 0x14
mov dword [esi + 0x34], esp
push eax
mov dword [esi + 0x1ec], esp
push eax
mov dword [esi + 0x30], esp
push eax
mov dword [esi + 0x1e8], esp
sub esp, 0x3c
mov dword [esi + 0x90], esp
push eax
mov dword [esi + 0x1e4], esp
sub esp, 0x34
mov dword [esi + 0x2c], esp
push eax
mov dword [esi + 0x1e0], esp
sub esp, 0x44
mov dword [esi + 0x10], esp
sub esp, 0x10
mov dword [esi + 0x150], esp
sub esp, 8
mov eax, esp
and eax, 0xfffffff8
mov dword [esi + 0x14c], eax
mov esp, eax
push eax
push eax
mov dword [esi + 0x8c], esp
push eax
mov dword [esi + 0x1dc], esp
sub esp, 0x44
mov dword [esi + 0x1d8], esp
sub esp, 0x10
mov dword [esi + 0x88], esp
sub esp, 4
mov dword [esp], edi
call fcn.00401b50
add esp, 4
mov edi, eax
cmp edi, 0
sete al
test al, 1
jne 0x4116d4
jmp 0x4116db
xor eax, eax
jmp 0x413358
mov dword [esi + 0x80], 0
jmp 0x4116e7
sub esp, 4
mov dword [esp], edi
call fcn.00401f20
add esp, 4
cmp dword [esi + 0x80], eax
setb al
test al, 1
jne 0x41170b
jmp 0x411704
mov al, 1
jmp 0x413358
sub esp, 8
mov dword [esi + 0x84], edi
mov dword [esp], edi
mov eax, dword [esi + 0x80]
mov dword [esp + 4], eax
call fcn.00401f30
add esp, 8
mov dword [esi + 0xa4], ebx
mov ebx, eax
mov eax, dword [esi + 0x238]
mov al, byte [eax]
mov byte [esi + 0xc4], al
mov edi, dword [esi + 0x23c]
mov word [edi], 0x369c
movzx eax, word [edi]
mov ecx, eax
or ecx, 0x8d4c061e
and eax, 0x61e
xor ecx, 0xffffffff
or eax, ecx
mov ecx, eax
add ecx, 0x6a6030f7
mov edx, ecx
and edx, 1
and eax, 1
xor eax, 1
or edx, eax
or ecx, 1
add edx, ecx
mov word [edi], dx
sub esp, 0xc
mov dword [esi + 0xc], ebx
mov dword [esp], ebx
mov ebx, dword [esi + 0xa4]
mov dword [esp + 4], edi
mov dword [esp + 8], 2
call fcn.00401e20
add esp, 0xc
cmp eax, 0
je 0x4118f6
mov eax, dword [esi + 0x234]
mov al, byte [eax]
mov byte [esi + 0xc8], al
mov eax, dword [esi + 0xac]
mov word [eax], 0xa6de
mov word [eax + 2], 0x3d39
xor eax, eax
cmp eax, 2
jae 0x41182b
mov ebx, dword [esi + 0xac]
movzx edx, word [ebx + eax*2]
mov edi, eax
shl edi, 1
and edi, 0xb3c6d5f0
mov ecx, eax
xor ecx, 0xd9e36af8
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
mov edx, ecx
add edx, 0x30e4a83f
mov edi, edx
and edi, 1
and edx, 1
xor edx, 0xffffffff
add ecx, 0xa841
add ecx, edx
add ecx, edi
mov word [ebx + eax*2], cx
mov ebx, dword [esi + 0xa4]
xor eax, 3
mov ecx, 4
sub ecx, eax
mov eax, ecx
jmp 0x4117c9
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [esi + 0xac]
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e20
add esp, 0xc
cmp eax, 0
setne al
test al, 1
jne 0x41185d
jmp 0x4118f6
mov eax, dword [esi + 0x230]
mov al, byte [eax]
mov byte [esi + 0xcc], al
mov edi, dword [esi + 0x160]
mov word [edi], 0x6d67
movzx eax, word [edi]
xor eax, 0x4492ee70
mov edx, eax
xor edx, 0xfe2
add edx, 1
mov ecx, eax
and ecx, 0xc90
xor ecx, 0x737f
add ecx, edx
shl ecx, 1
mov edx, eax
and edx, 0xf36f
and eax, 0xc90
xor eax, 0xffef
xor edx, 0x7c9d
and eax, edx
add eax, 1
add ecx, eax
mov word [edi], cx
mov edi, dword [esi + 0x84]
jmp 0x4118c5
sub esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [esi + 0x160]
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401e20
add esp, 0xc
cmp eax, 0
setne al
xor al, 0xff
test al, 1
jne 0x4118fc
jmp 0x411901
mov edi, dword [esi + 0x84]
jmp 0x41334a
mov eax, dword [esi + 0x228]
mov al, byte [eax]
mov byte [esi + 0xd0], al
mov edi, dword [esi + 0x22c]
mov word [edi], 0xda36
movzx ecx, word [edi]
mov eax, ecx
xor eax, 0x5b565641
xor eax, 0xf83a
mov edx, ecx
and edx, 0xae7b
or eax, edx
and ecx, 0x592dae7b
sub eax, ecx
add ax, 0x8c28
mov word [edi], ax
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401860
add esp, 8
mov dword [esi + 0x1d0], eax
mov eax, dword [esi + 0x224]
mov al, byte [eax]
mov byte [esi + 0xd4], al
mov eax, dword [esi + 0xa8]
mov word [eax], 0x78d6
mov word [eax + 2], 0xccb1
xor eax, eax
cmp eax, 2
jae 0x4119d1
mov ebx, dword [esi + 0xa8]
movzx edi, word [ebx + eax*2]
mov edx, eax
add edx, 0x27d9e530
or edx, edi
mov ecx, eax
add ecx, 0xe530
and ecx, edi
add edx, 0xf0aaabc3
sub ecx, edx
add ecx, 0xf0aaabc3
mov edx, ecx
shl edx, 1
and edx, 0x5302
xor ecx, 0x2981
add ecx, edx
mov dx, 1
sub dx, cx
mov word [ebx + eax*2], dx
add eax, 1
jmp 0x41197e
sub esp, 8
mov eax, dword [esi + 0xa8]
mov dword [esp + 4], eax
mov ebx, dword [esi + 0xc]
mov dword [esp], ebx
call fcn.00401960
add esp, 8
fnstcw word [esi + 0x22]
movzx eax, word [esi + 0x22]
or eax, 0xc00
mov word [esi + 0x136], ax
fldcw word [esi + 0x136]
fistp dword [esi + 0x240]
fldcw word [esi + 0x22]
mov eax, dword [esi + 0x240]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x21c]
mov al, byte [eax]
mov byte [esi + 0xd8], al
call fcn.00413820
call fcn.00413820
mov edi, dword [esi + 0x220]
mov word [edi], 0x6268
movzx ecx, word [edi]
mov eax, ecx
or eax, 0xe6f8f21a
and ecx, 0xf21a
mov edx, eax
add edx, edx
not edx
add eax, edx
or eax, ecx
add eax, 0x37c790d7
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
mov word [edi], ax
sub esp, 8
mov dword [esp + 4], edi
mov dword [esp], ebx
call fcn.00401960
add esp, 8
fnstcw word [esi + 0x20]
movzx eax, word [esi + 0x20]
or eax, 0xc00
mov word [esi + 0x134], ax
fldcw word [esi + 0x134]
fistp dword [esi + 0x244]
fldcw word [esi + 0x20]
mov edi, dword [esi + 0x244]
xor eax, eax
sub esp, 0x10
mov ebx, dword [esi + 0x218]
mov dword [esp], ebx
mov dword [esp + 4], 0x400
mov eax, dword [esi + 0x1d0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a770
add esp, 0x10
xor eax, eax
sub esp, 0x10
mov dword [esp], ebx
mov ebx, dword [esi + 0xa4]
mov dword [esp + 4], ebx
mov eax, dword [esi + 0xa0]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aec0
add esp, 0x10
test al, 1
jne 0x411b08
jmp 0x411b03
jmp 0x413344
cmp edi, 0
sete al
mov byte [esi + 0x1b], al
test al, 1
jne 0x411b1a
jmp 0x412a92
mov eax, dword [esi + 0x214]
mov al, byte [eax]
mov byte [esi + 0xdc], al
mov eax, dword [esi + 0x15c]
mov word [eax], 0xf77e
mov edi, dword [esi + 0x15c]
movzx ecx, word [edi]
mov eax, ecx
or eax, 0x989d39e1
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add edx, ecx
and ecx, 0x8b1a
and edx, 0x74e5
or ecx, edx
xor ecx, 0x6762c61e
xor ecx, 0x8b1a
and eax, ecx
mov cx, 0xcf0f
sub cx, ax
mov word [edi], cx
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.00401860
add esp, 8
jmp 0x411b89
cmp eax, 0
je 0x411def
sub esp, 4
mov dword [esi + 0x184], eax
mov dword [esp], eax
call fcn.00413390
add esp, 4
mov dword [esi + 0x140], eax
add eax, 1
mov ecx, 2
mov dword [esi + 0x17c], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411bcb
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov edi, eax
xor eax, eax
sub esp, 0x10
mov dword [esp], edi
mov eax, dword [esi + 0x17c]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x184]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a770
add esp, 0x10
xor eax, eax
sub esp, 0x18
mov dword [esp], 0
mov dword [esi + 0x24], edi
mov dword [esp + 4], edi
mov eax, dword [esi + 0x140]
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 [0x44531c]
mov dword [esi + 0x1ac], eax
mov eax, dword [esi + 0x210]
mov al, byte [eax]
mov byte [esi + 0xe0], al
mov eax, dword [esi + 0x58]
mov word [eax], 0xba50
mov word [eax + 2], 0x7a74
xor eax, eax
cmp eax, 2
jae 0x411cd4
mov ecx, dword [esi + 0x58]
movzx edi, word [ecx + eax*2]
mov dword [esi + 0x138], edi
mov edx, eax
add edx, 0x7251a32b
xor edi, 0xffffffff
mov ecx, edx
and ecx, edi
mov edi, 0x5cd4
sub edi, eax
and edi, dword [esi + 0x138]
or ecx, edi
xor ecx, 0xffffffff
mov edi, edx
and edi, ecx
shl edi, 1
sub edx, edi
add edx, dword [esi + 0x138]
mov edi, edx
add edi, 0xe6a7
shl edx, 1
or edx, 0xfffd
xor edi, 0xfffe
add edi, edx
mov cx, 0xfffe
sub cx, di
mov edx, dword [esi + 0x58]
mov word [edx + eax*2], cx
add eax, 1
jmp 0x411c68
mov eax, dword [esi + 0x58]
mov eax, dword [eax]
cmp dword [esi + 0x1ac], eax
jne 0x411d12
jmp 0x411ce3
sub esp, 4
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.00408010
add esp, 4
jmp 0x411cf6
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
xor ecx, ecx
mov eax, 4
jmp 0x411de1
mov eax, dword [esi + 0x9c]
mov eax, dword [eax]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411d30
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov ecx, dword [0x44531c]
mov dword [esi + 0x16c], ecx
mov edi, dword [esi + 0x9c]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x24]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x140]
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 dword [esi + 0x16c]
cmp eax, 0
jge 0x411dc6
jmp 0x411d8a
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00408010
add esp, 4
jmp 0x411d9c
sub esp, 4
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.00408010
add esp, 4
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
mov ecx, dword [esi]
mov eax, 4
jmp 0x411de1
jmp 0x411dc8
sub esp, 4
mov eax, dword [esi + 0x24]
mov dword [esp], eax
call fcn.00408010
add esp, 4
mov ecx, dword [esi]
jmp 0x411ddd
xor eax, eax
jmp 0x411de1
cmp eax, 0
je 0x41233a
jmp 0x41233c
call fcn.00408700
and eax, 0xf
add eax, 0x10
xor edx, edx
mov ecx, dword [esi + 0x158]
cmp edx, eax
jb 0x411f75
mov word [ecx], 0
mov eax, dword [esi + 0x208]
mov al, byte [eax]
mov byte [esi + 0xe8], al
mov eax, dword [esi + 0x50]
mov word [eax], 0x7360
mov word [eax + 2], 0x7352
mov word [eax + 4], 0x7342
mov word [eax + 6], 0x7345
mov word [eax + 8], 0x7349
mov word [eax + 0xa], 0x737f
mov word [eax + 0xc], 0x7337
mov word [eax + 0xe], 0x739c
xor eax, eax
cmp eax, 8
jae 0x411e80
mov ecx, dword [esi + 0x50]
movzx edx, word [ecx + eax*2]
mov ecx, eax
add ecx, 0x766d4ed
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cx, 0x5898
mov edx, dword [esi + 0x50]
mov word [edx + eax*2], cx
add eax, 1
jmp 0x411e51
sub esp, 8
mov edi, dword [esi + 0x154]
mov dword [esp], edi
mov eax, dword [esi + 0x50]
mov dword [esp + 4], eax
call fcn.00409b90
mov dword [esp], eax
mov eax, dword [esi + 0x158]
mov dword [esp + 4], eax
call fcn.00409b90
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 + 0x98]
mov dword [esp + 0x14], eax
call dword [0x44531c]
mov dword [esi + 0x1a4], eax
mov eax, dword [esi + 0x204]
mov cl, byte [eax]
mov byte [esi + 0xec], cl
mov eax, dword [esi + 0x4c]
mov word [eax], 0xd9bc
mov word [eax + 2], 0x99d0
xor edi, edi
cmp edi, 2
jae 0x411f5f
mov eax, dword [esi + 0x4c]
movzx eax, word [eax + edi*2]
mov edx, edi
add edx, 0x6452aee7
mov ecx, edx
and ecx, eax
shl ecx, 1
add edx, eax
sub edx, ecx
mov eax, edx
add eax, 1
mov ecx, edx
xor ecx, 0xffffffff
or ecx, 0xdd6a88c7
add ecx, eax
or edx, 0xdd6a88c7
add edx, ecx
mov eax, edx
shl eax, 1
and eax, 2
xor edx, 1
add edx, eax
mov eax, dword [esi + 0x4c]
mov word [eax + edi*2], dx
add edi, 1
jmp 0x411f0f
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
cmp dword [esi + 0x1a4], eax
jne 0x412030
jmp 0x41204c
mov dword [esi + 0x1b0], ecx
mov dword [esi + 0x1b4], edx
mov dword [esi + 0x1b8], eax
call fcn.00408700
mov dword [esi + 0x188], eax
mov eax, dword [esi + 0x20c]
mov al, byte [eax]
mov byte [esi + 0xe4], al
mov eax, dword [esi + 0x54]
mov word [eax], 0x5b3
mov word [eax + 2], 0x548
xor ecx, ecx
cmp ecx, 2
jae 0x411ffa
mov eax, dword [esi + 0x54]
movzx eax, word [eax + ecx*2]
mov dword [esi + 0x174], eax
mov edi, ecx
add edi, 0x242f
mov edx, 0xdbd0
sub edx, ecx
mov eax, 0xdbd0
sub eax, ecx
and edx, eax
mov eax, dword [esi + 0x174]
or edi, eax
xor eax, 0xffffffff
or edx, eax
and edx, edi
add dx, 0xde88
mov eax, dword [esi + 0x54]
mov word [eax + ecx*2], dx
add ecx, 1
jmp 0x411fb0
mov eax, dword [esi + 0x188]
cdq
mov ecx, dword [esi + 0x54]
idiv dword [ecx]
movsx eax, byte [edx + str.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ]
mov edx, dword [esi + 0x1b0]
mov ecx, edx
add ecx, 2
mov word [edx], ax
mov edx, dword [esi + 0x1b4]
add edx, 1
mov eax, dword [esi + 0x1b8]
jmp 0x411e02
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
xor ecx, ecx
mov eax, 4
jmp 0x412335
mov eax, dword [esi + 0x98]
mov eax, dword [eax]
add eax, 4
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41206d
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov ecx, dword [0x44531c]
mov dword [esi + 0x170], ecx
mov edi, dword [esi + 0x98]
mov ecx, dword [edi]
xor edx, edx
sub esp, 0x18
mov dword [esp], 0
mov edx, dword [esi + 0x154]
mov dword [esp + 4], edx
mov edx, dword [esi + 0x1cc]
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 dword [esi + 0x170]
cmp eax, 0
jge 0x4120f6
jmp 0x4120ca
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00408010
add esp, 4
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
mov eax, 4
mov ecx, dword [esi]
jmp 0x412335
mov eax, dword [esi + 0x28]
cmp eax, 0
jne 0x4121dc
mov eax, dword [esi + 0x200]
mov al, byte [eax]
mov byte [esi + 0xf0], al
mov eax, dword [esi + 0x48]
mov word [eax], 0xa7fc
mov word [eax + 2], 0xa7b6
mov word [eax + 4], 0xa74c
mov word [eax + 6], 0xa7b0
mov word [eax + 8], 0xa7d6
xor edi, edi
mov eax, dword [esi]
cmp edi, 5
jae 0x4121c0
mov eax, dword [esi + 0x48]
movzx edx, word [eax + edi*2]
mov ecx, edi
xor ecx, 0xa24f163e
mov dword [esi + 0x13c], edi
mov edi, dword [esi + 0x13c]
shl edi, 1
and edi, 0xbb61d382
sub edi, ecx
mov eax, edi
or eax, edx
mov ecx, edi
xor ecx, edx
add ecx, edi
sub ecx, eax
xor edi, 0xffffffff
and edx, edi
or ecx, edx
mov edx, ecx
and edx, 0xb1ed
mov eax, ecx
and eax, 2
xor eax, 2
mov edi, ecx
and edi, 0xb1ed
imul edi, eax
mov eax, ecx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
mov edi, dword [esi + 0x13c]
xor ecx, 0xb1ef
add ecx, edx
add cx, 1
mov eax, dword [esi + 0x48]
mov word [eax + edi*2], cx
mov eax, dword [esi]
add edi, 1
jmp 0x412134
sub esp, 8
mov dword [esp], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 4], eax
call fcn.004137b0
mov ecx, dword [esi]
add esp, 8
jmp 0x412331
cmp eax, 1
mov ecx, dword [esi]
jne 0x41226a
mov eax, dword [esi + 0x1fc]
mov al, byte [eax]
mov byte [esi + 0xf4], al
mov eax, dword [esi + 0x44]
mov word [eax], 0xcf7b
mov word [eax + 2], 0xcf22
mov word [eax + 4], 0xcf3b
mov word [eax + 6], 0xcf24
mov word [eax + 8], 0xcf99
xor eax, eax
cmp eax, 5
jae 0x41224e
mov ecx, dword [esi + 0x44]
movzx edx, word [ecx + eax*2]
mov ecx, eax
add ecx, 0x8ed
and ecx, edx
shl ecx, 1
mov edi, eax
add edi, 0x88ed
add edi, edx
sub edi, ecx
mov ecx, dword [esi]
add di, 0xb898
mov edx, dword [esi + 0x44]
mov word [edx + eax*2], di
add eax, 1
jmp 0x412217
sub esp, 8
mov dword [esp], ecx
mov eax, dword [esi + 0x44]
mov dword [esp + 4], eax
call fcn.004137b0
mov ecx, dword [esi]
add esp, 8
jmp 0x412331
cmp eax, 2
jne 0x412331
mov eax, dword [esi + 0x1f8]
mov al, byte [eax]
mov byte [esi + 0xf8], al
mov eax, dword [esi + 0x40]
mov word [eax], 0xd4b8
mov word [eax + 2], 0xd447
mov word [eax + 4], 0xd44b
mov word [eax + 6], 0xd488
mov word [eax + 8], 0xd4da
xor eax, eax
cmp eax, 5
jae 0x412318
mov ecx, dword [esi + 0x40]
movzx edx, word [ecx + eax*2]
mov ecx, eax
add ecx, 0xc36a8be6
xor ecx, edx
mov edx, ecx
and edx, 0xe4aba0cd
mov dword [esi + 0x1c], eax
mov eax, ecx
and eax, 2
xor eax, 2
mov edi, ecx
and edi, 0xe4aba0cd
imul edi, eax
mov eax, ecx
and eax, 2
or edx, 2
imul edx, eax
add edx, edi
xor ecx, 0xe4aba0cf
mov edi, ecx
add edi, edx
shl ecx, 1
and ecx, 2
xor edi, 1
add edi, ecx
mov ecx, dword [esi]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x40]
mov word [edx + eax*2], di
mov eax, dword [esi + 0x1c]
shl eax, 1
and eax, 2
xor dword [esi + 0x1c], 1
add dword [esi + 0x1c], eax
mov eax, dword [esi + 0x1c]
jmp 0x4122a3
sub esp, 8
mov dword [esp], ecx
mov eax, dword [esi + 0x40]
mov dword [esp + 4], eax
call fcn.004137b0
add esp, 8
mov ecx, dword [esi]
jmp 0x412331
xor eax, eax
jmp 0x412335
cmp eax, 0
jne 0x41233c
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x41234b
jmp 0x413344
xor eax, eax
sub esp, 0x1c
mov dword [esi], ecx
mov dword [esp], ecx
mov eax, dword [esi + 0x94]
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.004390c0
add esp, 0x1c
mov edi, eax
cmp edi, 0
jl 0x4124ab
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov ecx, dword [ebx]
mov edx, dword [esi + 0x94]
mov edx, dword [edx]
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.004398c0
add esp, 0x10
mov ecx, dword [esi + 0x94]
mov ecx, dword [ecx]
mov dword [esi + 0x1c8], ecx
mov cl, byte [esi + 0xc0]
mov byte [esi + 0x120], cl
mov word [esi + 0x6c], 0x12d7
mov word [esi + 0x6e], 0x12d6
xor edi, edi
cmp edi, 2
jae 0x41241e
mov cx, word [esi + edi*2 + 0x6c]
mov dx, di
add dx, 0xfde8
xor dx, cx
add dx, 0x10c0
mov word [esi + edi*2 + 0x6c], dx
mov ecx, edi
shl ecx, 1
or edi, ecx
xor edi, 1
jmp 0x4123f4
mov dword [esi + 0x180], eax
mov edi, dword [esi + 0x6c]
xor edx, edx
cmp edx, dword [0x445320]
jb 0x412433
jmp 0x4124a3
mov eax, dword [0x445324]
cmp dword [eax + edx*8], 0xb430e561
sete cl
mov byte [esi + 0x18], cl
test cl, 1
jne 0x41244c
jmp 0x412496
mov eax, dword [eax + edx*8 + 4]
cmp eax, edi
je 0x412496
mov dword [esi + 0x1a0], edi
mov ecx, dword [0x445328]
sub esp, 0x10
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esi + 0x1c8]
mov dword [esp + 0xc], eax
mov dword [esi + 0x18c], edx
call fcn.004371a0
mov edx, dword [esi + 0x18c]
mov edi, dword [esi + 0x1a0]
add esp, 0x10
test byte [esi + 0x18], 1
jne 0x4124a1
add edx, 1
jmp 0x412429
jmp 0x4124a3
mov edi, dword [esi + 0x180]
jmp 0x4124ab
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
mov dword [ebx], 0
cmp edi, 0
jge 0x4124df
mov dword [esi + 4], 0
mov eax, 4
mov ecx, dword [esi]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x10]
jmp 0x412a7f
mov ecx, dword [esi]
mov edx, dword [esi + 0x28]
mov edi, dword [esi + 0x10]
cmp edx, 1
sete al
jmp 0x4124ef
test al, 1
jne 0x4124f8
jmp 0x41285e
mov eax, dword [esi + 0x1f4]
mov al, byte [eax]
mov byte [esi + 0xfc], al
mov eax, dword [esi + 0x3c]
mov word [eax], 0x35c7
mov word [eax + 2], 0x8722
xor eax, eax
cmp eax, 2
jae 0x41255e
mov ecx, dword [esi + 0x3c]
movzx ecx, word [ecx + eax*2]
mov edx, eax
add edx, 0xf3b5a469
xor edx, ecx
mov ecx, edx
and ecx, 0xdcb7
mov edi, edx
and edi, 0x2348
xor edi, 0x2348
and edx, 0x2348
xor edx, 0x2348
or edi, edx
sub ecx, edi
mov edx, dword [esi + 0x3c]
mov word [edx + eax*2], cx
add eax, 1
jmp 0x412516
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [esi + 0x3c]
mov dword [esp + 4], eax
call fcn.00401860
add esp, 8
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x1f0]
mov al, byte [eax]
mov byte [esi + 0x100], al
mov eax, dword [esi + 0x38]
mov word [eax], 0x370e
mov word [eax + 2], 0x84a0
xor eax, eax
cmp eax, 2
jae 0x412613
mov ecx, dword [esi + 0x38]
movzx ecx, word [ecx + eax*2]
mov dword [esi + 0x178], ecx
mov dword [esi + 0x74], eax
xor eax, eax
sub eax, dword [esi + 0x74]
mov edx, eax
shl edx, 1
and edx, 0xa3eab7d2
xor eax, 0xae0aa416
sub eax, edx
mov edx, 0xfffe
sub edx, eax
or edx, ecx
mov edi, 0xfffffffe
sub edi, eax
mov ecx, 0xfffffffe
sub ecx, eax
or edi, ecx
mov ecx, 0xfffffffe
sub ecx, eax
or edi, ecx
mov eax, edi
shl eax, 1
xor eax, 0xffffffff
add edi, eax
mov eax, dword [esi + 0x178]
xor eax, 0xffffffff
or edi, eax
and edi, edx
mov ax, 0xdf47
sub ax, di
mov ecx, dword [esi + 0x74]
mov edx, dword [esi + 0x38]
mov word [edx + ecx*2], ax
mov eax, dword [esi + 0x74]
add eax, 1
jmp 0x412597
sub esp, 8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 4], eax
call fcn.00401860
add esp, 8
mov dword [esi + 0x78], eax
sub esp, 4
mov eax, dword [esi]
mov dword [esp], eax
call fcn.00413800
add esp, 4
mov edi, eax
cmp dword [esi + 0x7c], 0
setne al
xor edx, edx
mov byte [esi + 0x1a], al
test al, 1
jne 0x412652
jmp 0x412672
sub esp, 4
mov eax, dword [esi + 0x7c]
mov dword [esp], eax
call fcn.00413370
add esp, 4
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor edx, edx
sub edx, ecx
jmp 0x412670
jmp 0x412672
cmp dword [esi + 0x78], 0
setne cl
xor eax, eax
mov byte [esi + 0xb], cl
test cl, 1
mov dword [esi + 0x148], edx
jne 0x41268b
jmp 0x4126a5
sub esp, 4
mov eax, dword [esi + 0x78]
mov dword [esp], eax
call fcn.00413370
mov edx, dword [esi + 0x148]
add esp, 4
add eax, 1
add edi, 9
add edi, 0x28513d22
add edi, edx
sub edi, 0x28513d22
mov dword [esi + 0x1d4], eax
add edi, eax
add edi, 0x83b39964
add edi, 1
sub edi, 0x83b39964
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4126e5
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [esi + 0x1ec]
mov al, byte [eax]
mov byte [esi + 0x104], al
mov eax, dword [esi + 0x34]
mov word [eax], 0x2b54
mov word [eax + 2], 0x2b52
mov word [eax + 4], 0x2b66
mov word [eax + 6], 0x2b6d
mov word [eax + 8], 0x2b66
mov word [eax + 0xa], 0x2b67
mov word [eax + 0xc], 0x2c9f
mov word [eax + 0xe], 0x2c9f
mov word [eax + 0x10], 0x2cce
xor eax, eax
cmp eax, 9
jae 0x412772
mov ecx, dword [esi + 0x34]
movzx edi, word [ecx + eax*2]
mov ecx, 0x6889
sub ecx, eax
or ecx, edi
mov edx, 0x6889
sub edx, eax
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dx, 0x4450
mov ecx, dword [esi + 0x34]
mov word [ecx + eax*2], dx
add eax, 1
jmp 0x41273e
sub esp, 8
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, dword [esi + 0x34]
mov dword [esp + 4], eax
call fcn.00409b90
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 edi, dword [esi]
mov dword [esp + 4], edi
call fcn.00409b90
mov ecx, edi
add esp, 8
mov edi, eax
add edi, 2
mov word [eax], 0x22
cmp ecx, 0
je 0x4127d0
sub esp, 4
mov dword [esp], ecx
call fcn.00408010
add esp, 4
test byte [esi + 0x1a], 1
jne 0x4127db
mov al, byte [esi + 0xb]
jmp 0x412819
mov ecx, edi
add ecx, 2
mov word [edi], 0x2c
xor eax, eax
sub esp, 0x10
mov dword [esp], ecx
mov edi, ecx
mov eax, dword [esi + 0x148]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a770
add esp, 0x10
shl eax, 1
add edi, eax
mov al, byte [esi + 0xb]
jmp 0x412819
test al, 1
jne 0x41281f
jmp 0x412852
mov eax, edi
add eax, 2
mov word [edi], 0x2c
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [esi + 0x1d4]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x78]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a770
add esp, 0x10
mov edi, dword [esi + 0x10]
xor ecx, ecx
xor edx, edx
jmp 0x412a7d
mov dword [esi + 4], 0
cmp edx, 2
je 0x41286f
jmp 0x412a7d
sub esp, 4
mov dword [esp], ecx
call fcn.00413800
add esp, 4
add eax, 0x1d
mov ecx, eax
and ecx, 1
or eax, 1
add ecx, eax
mov edx, 2
mov eax, ecx
mul edx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4128a2
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [esi + 0x1e8]
mov al, byte [eax]
mov byte [esi + 0x108], al
mov eax, dword [esi + 0x30]
mov word [eax], 0xb316
mov word [eax + 2], 0xb375
xor eax, eax
cmp eax, 2
jae 0x41293f
mov ecx, dword [esi + 0x30]
movzx ecx, word [ecx + eax*2]
mov edi, 0xf121a22b
sub edi, eax
and edi, 0xc8f7bcb3
mov edx, 0x3121a22b
sub edx, eax
and edx, 0x3708434c
or edx, edi
mov edi, edx
xor edi, 0x434c
mov dword [esi + 0x168], edi
mov edi, ecx
xor edi, 0x434c
and edi, dword [esi + 0x168]
xor ecx, 0x434c
xor edx, 0x434c
or ecx, edx
xor ecx, 0xffffffff
or edi, ecx
add di, 0x1160
mov ecx, dword [esi + 0x30]
mov word [ecx + eax*2], di
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x4128d1
mov eax, dword [esi + 0x1e4]
mov al, byte [eax]
mov byte [esi + 0x10c], al
mov eax, dword [esi + 0x90]
mov word [eax], 0x3f44
mov word [eax + 2], 0x3f5a
mov word [eax + 4], 0x3f41
mov word [eax + 6], 0x3f52
mov word [eax + 8], 0x3f4a
mov word [eax + 0xa], 0x3f4a
mov word [eax + 0xc], 0x3f52
mov word [eax + 0xe], 0x3f5e
mov word [eax + 0x10], 0x3f50
mov word [eax + 0x12], 0x3f51
mov word [eax + 0x14], 0x3e9e
mov word [eax + 0x16], 0x3e92
mov word [eax + 0x18], 0x3f65
mov word [eax + 0x1a], 0x3f79
mov word [eax + 0x1c], 0x3f67
mov word [eax + 0x1e], 0x3f60
mov word [eax + 0x20], 0x3ea4
mov word [eax + 0x22], 0x3f67
mov word [eax + 0x24], 0x3f7f
mov word [eax + 0x26], 0x3f77
mov word [eax + 0x28], 0x3f69
mov word [eax + 0x2a], 0x3f7a
mov word [eax + 0x2c], 0x3f79
mov word [eax + 0x2e], 0x3eab
mov word [eax + 0x30], 0x3ea1
mov word [eax + 0x32], 0x3f6b
mov word [eax + 0x34], 0x3eae
mov word [eax + 0x36], 0x3ead
mov word [eax + 0x38], 0x3ed0
xor eax, eax
cmp eax, 0x1d
jae 0x412a3b
mov edi, dword [esi + 0x90]
movzx edx, word [edi + eax*2]
mov ecx, eax
add ecx, 0xe63bdc54
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x4466
xor ecx, 0x2233
add ecx, edx
add cx, 0xfb2d
mov word [edi + eax*2], cx
add eax, 1
jmp 0x412a02
sub esp, 8
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, dword [esi + 0x90]
mov dword [esp + 4], eax
call fcn.00409b90
mov dword [esp], eax
mov edi, dword [esi]
mov dword [esp + 4], edi
call fcn.00409b90
mov dword [esp], eax
mov eax, dword [esi + 0x30]
mov dword [esp + 4], eax
call fcn.00409b90
mov ecx, edi
add esp, 8
mov edx, 2
mov edi, dword [esi + 0x10]
xor eax, eax
cmp eax, 0
sete al
test al, 1
jne 0x412cc8
jmp 0x413344
call fcn.00413820
xor edi, 1
mov edx, dword [esi + 0x28]
mov eax, edx
xor eax, 2
or edi, eax
sete al
mov dword [esi + 4], 0
test al, 1
mov ecx, 0
mov edi, dword [esi + 0x10]
jne 0x412abf
jmp 0x412cc8
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00413390
add esp, 4
mov edi, eax
add edi, 0x6db70319
add edi, 1
sub edi, 0x6db70319
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412af8
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov edx, dword [ebx]
xor ecx, ecx
sub esp, 0x10
mov dword [esi + 0x144], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0
call fcn.0040a770
add esp, 0x10
mov eax, dword [esi + 0xa0]
mov eax, dword [eax]
mov ecx, eax
and ecx, 0x18
shl ecx, 1
xor eax, 0x18
add eax, ecx
sub eax, 0x2f79970
add eax, 1
add eax, 0x2f79970
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412b65
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408000
add esp, 4
mov dword [esi + 4], eax
mov eax, dword [esi + 0x1e0]
mov al, byte [eax]
mov byte [esi + 0x110], al
mov eax, dword [esi + 0x2c]
mov word [eax], 0xb682
mov word [eax + 2], 0xb67c
mov word [eax + 4], 0xb683
mov word [eax + 6], 0xb670
mov word [eax + 8], 0xb684
mov word [eax + 0xa], 0xb684
mov word [eax + 0xc], 0xb670
mov word [eax + 0xe], 0xb67c
mov word [eax + 0x10], 0xb676
mov word [eax + 0x12], 0xb677
mov word [eax + 0x14], 0xb63c
mov word [eax + 0x16], 0xb630
mov word [eax + 0x18], 0xb67b
mov word [eax + 0x1a], 0xb687
mov word [eax + 0x1c], 0xb665
mov word [eax + 0x1e], 0xb662
mov word [eax + 0x20], 0xb622
mov word [eax + 0x22], 0xb661
mov word [eax + 0x24], 0xb69d
mov word [eax + 0x26], 0xb695
mov word [eax + 0x28], 0xb667
mov word [eax + 0x2a], 0xb694
mov word [eax + 0x2c], 0xb69b
mov word [eax + 0x2e], 0xb629
mov word [eax + 0x30], 0xb60a
xor eax, eax
mov edi, dword [esi + 0x10]
cmp eax, 0x19
jae 0x412c7d
mov ecx, dword [esi + 0x2c]
movzx edx, word [ecx + eax*2]
mov edi, eax
add edi, 0x6e058602
mov ecx, 0x11fa79fd
sub ecx, eax
and ecx, 0x1beb2b48
and edi, 0xe414d4b7
or ecx, edi
mov edi, dword [esi + 0x10]
xor ecx, edx
xor ecx, 0xe414d4b7
add ecx, 1
mov edx, ecx
shl edx, 1
and edx, 0x6022
xor ecx, 0x3011
add ecx, edx
mov dx, 1
sub dx, cx
mov ecx, dword [esi + 0x2c]
mov word [ecx + eax*2], dx
add eax, 1
jmp 0x412c21
sub esp, 8
mov eax, dword [esi + 4]
mov dword [esp], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 4], eax
call fcn.00409b90
mov dword [esp], eax
mov eax, dword [esi + 0x144]
mov dword [esp + 4], eax
call fcn.00409b90
add esp, 8
jmp 0x412ca9
sub esp, 4
mov eax, dword [esi + 0x144]
mov dword [esp], eax
call fcn.00408010
add esp, 4
jmp 0x412cbf
xor ecx, ecx
mov edx, 2
jmp 0x412cc8
test edx, edx
mov dword [esi], ecx
je 0x412ceb
jmp 0x412cd0
mov eax, edx
sub eax, 1
je 0x412e64
jmp 0x412cdd
sub edx, 2
je 0x4130db
jmp 0x4132ff
test byte [esi + 0x1b], 1
jne 0x412cf6
jmp 0x412e64
xor eax, eax
sub esp, 0xc
mov dword [esp], edi
mov dword [esp + 4], 0
mov dword [esp + 8], 0x44
call fcn.00408080
add esp, 0xc
mov dword [edi], 0x44
mov eax, dword [0x444314]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00438a90
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov ecx, dword [esi]
mov dword [esp], ecx
mov ecx, dword [esi + 4]
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 dword [esp + 0x20], edi
mov ecx, dword [esi + 0x150]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
je 0x412e5f
mov eax, dword [esi + 0x150]
mov eax, dword [eax]
mov dword [esi + 0x1bc], eax
mov al, byte [esi + 0xbc]
mov byte [esi + 0x124], al
mov word [esi + 0x68], 0x12d7
mov word [esi + 0x6a], 0x12d6
xor eax, eax
cmp eax, 2
jae 0x412de8
mov cx, word [esi + eax*2 + 0x68]
mov dx, ax
add dx, 0xfde8
xor dx, cx
add dx, 0x10c0
mov word [esi + eax*2 + 0x68], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x412dbe
mov ecx, dword [esi + 0x68]
xor edi, edi
cmp edi, dword [0x445320]
jb 0x412df7
jmp 0x412e5d
mov eax, dword [0x445324]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x412e0d
jmp 0x412e51
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x412e51
mov dword [esi + 0x190], ecx
mov ecx, dword [0x445328]
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 + 0x14], dl
call fcn.004371a0
mov dl, byte [esi + 0x14]
mov ecx, dword [esi + 0x190]
add esp, 0x10
test dl, 1
jne 0x412e5b
add edi, 1
jmp 0x412ded
jmp 0x412e5d
jmp 0x412e5f
jmp 0x4132ff
mov eax, dword [0x444314]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x4e0c8565
call fcn.00438a90
add esp, 8
test eax, eax
setne cl
mov ecx, dword [ebx]
xor edx, edx
lea edx, [0x420a60]
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 + 0x164], eax
cmp eax, 0
je 0x4130d6
mov eax, dword [esi + 0x1dc]
mov cl, byte [eax]
mov byte [esi + 0x114], cl
mov eax, dword [esi + 0x8c]
mov word [eax], 0xd04f
mov word [eax + 2], 0xf20c
mov word [eax + 4], 0x964e
mov word [eax + 6], 0x964d
xor edx, edx
cmp edx, 4
jae 0x412f35
mov eax, dword [esi + 0x8c]
mov cx, word [eax + edx*2]
mov word [esi + 0x132], cx
mov edi, edx
shl edi, 1
and edi, 0xb3ee
mov ecx, edx
xor ecx, 0x59f7
add ecx, edi
xor cx, word [esi + 0x132]
add cx, 0x3048
mov word [eax + edx*2], cx
add edx, 1
jmp 0x412ef6
mov ecx, dword [esi + 0x8c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [esi + 0x14c]
mov dword [edx + 4], ecx
mov dword [edx], eax
mov al, byte [esi + 0x118]
mov byte [esi + 0x11c], al
mov word [esi + 0x70], 0x12d7
mov word [esi + 0x72], 0x12d6
xor ecx, ecx
cmp ecx, 2
jae 0x412f8f
mov ax, word [esi + ecx*2 + 0x70]
mov dx, cx
add dx, 0xfde8
xor dx, ax
add dx, 0x10c0
mov word [esi + ecx*2 + 0x70], dx
mov eax, ecx
shl eax, 1
or ecx, eax
xor ecx, 1
jmp 0x412f65
mov eax, dword [esi + 0x70]
xor edi, edi
cmp edi, dword [0x445320]
jb 0x412f9e
jmp 0x41301b
mov ecx, dword [0x445324]
cmp dword [ecx + edi*8], 0xa67d73aa
sete dl
test dl, 1
jne 0x412fb5
jmp 0x41300c
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x41300c
mov dword [esi + 0x1a8], eax
mov eax, dword [0x445328]
mov byte [esi + 0x19], dl
xor edx, edx
sub esp, 0x18
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
mov eax, dword [esi + 0x164]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov eax, dword [esi + 0x14c]
mov dword [esp + 0x14], eax
call fcn.004371a0
mov dl, byte [esi + 0x19]
add esp, 0x18
mov eax, dword [esi + 0x1a8]
test dl, 1
je 0x413013
jmp 0x41301b
add edi, 1
jmp 0x412f94
mov al, byte [esi + 0xb8]
mov byte [esi + 0x128], al
mov word [esi + 0x64], 0x12d7
mov word [esi + 0x66], 0x12d6
xor ecx, ecx
cmp ecx, 2
jae 0x41305f
mov ax, word [esi + ecx*2 + 0x64]
mov dx, cx
add dx, 0xfde8
xor dx, ax
add dx, 0x10c0
mov word [esi + ecx*2 + 0x64], dx
mov eax, ecx
shl eax, 1
or ecx, eax
xor ecx, 1
jmp 0x413035
mov eax, dword [esi + 0x64]
xor edi, edi
cmp edi, dword [0x445320]
jb 0x41306e
jmp 0x4130d4
mov ecx, dword [0x445324]
cmp dword [ecx + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x413085
jmp 0x4130c8
mov ecx, dword [ecx + edi*8 + 4]
cmp ecx, eax
je 0x4130c8
mov dword [esi + 0x194], eax
mov eax, dword [0x445328]
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
mov eax, dword [esi + 0x164]
mov dword [esp + 0xc], eax
mov byte [esi + 0x15], dl
call fcn.004371a0
mov dl, byte [esi + 0x15]
add esp, 0x10
mov eax, dword [esi + 0x194]
test dl, 1
jne 0x4130d2
add edi, 1
jmp 0x413064
jmp 0x4130d4
jmp 0x4130d6
jmp 0x4132ff
xor eax, eax
mov ecx, 0x11
mov edx, dword [esi + 0x1d8]
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [edx], 0x44
mov edi, edx
mov eax, dword [0x444314]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], 0x755f867b
call fcn.00438a90
add esp, 8
test eax, eax
setne cl
xor ecx, ecx
sub esp, 0x28
mov dword [esp], 0
mov ecx, dword [esi + 4]
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 dword [esp + 0x20], edi
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x24], ecx
call eax
cmp eax, 0
je 0x4132ff
mov eax, dword [esi + 0x88]
mov eax, dword [eax + 4]
mov dword [esi + 0x1c4], eax
mov al, byte [esi + 0xb4]
mov byte [esi + 0x12c], al
mov word [esi + 0x60], 0x12d7
mov word [esi + 0x62], 0x12d6
xor eax, eax
cmp eax, 2
jae 0x4131c3
mov cx, word [esi + eax*2 + 0x60]
mov dx, ax
add dx, 0xfde8
xor dx, cx
add dx, 0x10c0
mov word [esi + eax*2 + 0x60], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x413199
mov ecx, dword [esi + 0x60]
xor edi, edi
cmp edi, dword [0x445320]
jb 0x4131d2
jmp 0x413238
mov eax, dword [0x445324]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4131e8
jmp 0x41322c
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x41322c
mov dword [esi + 0x19c], ecx
mov ecx, dword [0x445328]
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 byte [esi + 0x17], dl
call fcn.004371a0
mov dl, byte [esi + 0x17]
mov ecx, dword [esi + 0x19c]
add esp, 0x10
test dl, 1
jne 0x413236
add edi, 1
jmp 0x4131c8
jmp 0x413238
mov eax, dword [esi + 0x88]
mov eax, dword [eax]
mov dword [esi + 0x1c0], eax
mov al, byte [esi + 0xb0]
mov byte [esi + 0x130], al
mov word [esi + 0x5c], 0x12d7
mov word [esi + 0x5e], 0x12d6
xor eax, eax
cmp eax, 2
jae 0x41328a
mov cx, word [esi + eax*2 + 0x5c]
mov dx, ax
add dx, 0xfde8
xor dx, cx
add dx, 0x10c0
mov word [esi + eax*2 + 0x5c], dx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x413260
mov ecx, dword [esi + 0x5c]
xor edi, edi
cmp edi, dword [0x445320]
jb 0x413299
jmp 0x4132ff
mov eax, dword [0x445324]
cmp dword [eax + edi*8], 0xb430e561
sete dl
test dl, 1
jne 0x4132af
jmp 0x4132f3
mov eax, dword [eax + edi*8 + 4]
cmp eax, ecx
je 0x4132f3
mov dword [esi + 0x198], ecx
mov ecx, dword [0x445328]
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
mov byte [esi + 0x16], dl
call fcn.004371a0
mov dl, byte [esi + 0x16]
mov ecx, dword [esi + 0x198]
add esp, 0x10
test dl, 1
jne 0x4132fd
add edi, 1
jmp 0x41328f
jmp 0x4132ff
mov eax, dword [ebx]
sub esp, 4
mov dword [esp], eax
call fcn.00435750
add esp, 4
mov eax, dword [esi]
cmp eax, 0
je 0x413324
sub esp, 4
mov dword [esp], eax
call fcn.00408010
add esp, 4
cmp dword [esi + 4], 0
sete al
test al, 1
jne 0x413342
jmp 0x413331
sub esp, 4
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.00408010
add esp, 4
jmp 0x413344
mov edi, dword [esi + 0x84]
sub dword [esi + 0x80], 0xffffffff
jmp 0x413353
jmp 0x4116e7
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret