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

Disassembly:
sub esp, 0xc4
push esi
mov esi, ecx
mov al, byte [esi + 0x18]
test al, al
mov byte [esp + 0x13], 0
je 0x459751
xor al, al
pop esi
add esp, 0xc4
ret 0x14
mov eax, dword [esp + 0xd8]
and eax, dword [esp + 0xdc]
cmp eax, 0xffffffff
push ebp
mov ebp, dword [esp + 0xd0]
jne 0x45979c
mov ecx, esi
call fcn.00458b90
mov edx, dword [ebp]
push 1
push 0
push 0
mov ecx, ebp
mov byte [esp + 0x23], 1
call dword [edx + 0xc]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x1c]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov dword [esi + 0x15470], eax
sub eax, 1
mov dword [esp + 0x64], eax
mov eax, ecx
sbb eax, 0
push ebx
mov dword [esi + 0x15474], ecx
mov byte [esp + 0xf], 0
mov dword [esp + 0x6c], eax
push edi
lea ecx, [ecx]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
cmp edx, dword [esp + 0x70]
jl 0x4597f8
jg 0x4597e6
cmp eax, dword [esp + 0x6c]
jb 0x4597f8
mov eax, dword [esi + 0x15468]
or eax, dword [esi + 0x1546c]
je 0x45b88a
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
cmp eax, dword [esp + 0xe4]
jne 0x459816
cmp edx, dword [esp + 0xe8]
je 0x45b784
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
call fcn.00458820
mov ebx, edx
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
mov edi, eax
call fcn.00458820
test ebx, ebx
mov dword [esp + 0x24], eax
jl 0x45b893
jg 0x45985e
test edi, edi
jbe 0x45b893
cmp edi, 1
jne 0x459892
test ebx, ebx
jne 0x459892
lea eax, [esp + 0x13]
push eax
push 8
push ebp
mov ecx, esi
call fcn.00458820
mov ebx, edx
test ebx, ebx
mov edi, eax
jl 0x45bbb7
jg 0x45988c
test edi, edi
jb 0x45bbb7
add edi, 0xfffffff8
adc ebx, 0xffffffff
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, edi
adc eax, ebx
add edi, 0xfffffff8
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x13]
adc ebx, 0xffffffff
test al, al
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
jne 0x45bbbb
mov eax, dword [esp + 0x24]
cmp eax, 0x6d6f6f76
ja 0x45a379
je 0x45b7e6
cmp eax, 0x64736370
ja 0x459bb5
je 0x45af9d
cmp eax, 0x636f3634
ja 0x459a2d
je 0x459a43
cmp eax, 0x61757468
je 0x45af9d
cmp eax, 0x61766343
je 0x45b8b2
cmp eax, 0x6368706c
jne 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x45b764
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
jne 0x45b764
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
mov edi, eax
mov ecx, eax
imul ecx, ecx, 0x108
push ecx
mov dword [esi + 0x10], edi
call fcn.00446b60
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x459994
push 0x458590
push edi
push pe_nt_image_headers32
push ebx
call fcn.00401020
jmp 0x459996
xor ebx, ebx
mov eax, dword [esi + 0x10]
test eax, eax
mov dword [esi + 0x14], ebx
mov dword [esp + 0x34], 0
jbe 0x45b764
xor edi, edi
mov edi, edi
lea edx, [esp + 0x13]
push edx
push 8
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x14]
mov dword [edi + ecx], eax
mov dword [edi + ecx + 4], edx
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + eax + 4]
test ecx, ecx
jl 0x45bbb7
jg 0x4599e4
cmp dword [edi + eax], 0
jb 0x45bbb7
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x14]
mov ebx, eax
mov eax, dword [ebp]
push 0
lea edx, [edi + ecx + 8]
push ebx
push edx
mov ecx, ebp
call dword [eax + 0x10]
mov eax, dword [esi + 0x14]
add eax, edi
mov byte [eax + ebx + 8], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
inc eax
add edi, 0x108
cmp eax, ecx
mov dword [esp + 0x34], eax
jb 0x4599b0
jmp 0x45b764
cmp eax, 0x63707274
je 0x45af9d
cmp eax, 0x63747473
jne 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
jne 0x45b764
mov edx, dword [ebp]
xor edi, edi
push edi
push edi
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ebx, eax
cmp ebx, edi
je 0x45bbb7
cmp ebx, 0x155555
ja 0x45bbb7
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
adc edx, 0xffffffff
cmp eax, 0x73747363
mov dword [esp + 0x18], edx
ja 0x45b35e
je 0x45b1bc
cmp eax, 0x636f3634
je 0x459ae3
cmp eax, 0x63747473
je 0x45b0bf
cmp eax, 0x7374636f
jne 0x45b764
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fac]
cmp ecx, edi
lea eax, [eax + esi + 0x11fac]
jne 0x45bbb7
lea ecx, [ebx*8]
push ecx
mov dword [eax], ebx
call fcn.00446b60
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [edx + esi + 0x11fb0], eax
mov dword [esp + 0x20], edi
jbe 0x459dcd
jmp 0x459b40
cmp dword [esp + 0x24], 0x636f3634
lea eax, [esp + 0x13]
mov ecx, esi
push eax
jne 0x45b172
push 8
push ebp
shl edi, 3
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 0x11fb0]
mov dword [edi + ecx], eax
mov dword [edi + ecx + 4], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov eax, dword [edx + esi + 0x11fb0]
mov ecx, dword [edi + eax + 4]
test ecx, ecx
jl 0x45bbb7
jg 0x459ba5
cmp dword [edi + eax], 0
jb 0x45bbb7
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
add ecx, 0xfffffff8
jmp 0x45b19b
cmp eax, 0x6d646961
ja 0x45a35e
je 0x45b7e6
cmp eax, 0x65736473
je 0x45a2d7
cmp eax, 0x696c7374
je 0x459def
cmp eax, 0x6d646864
jne 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fd0]
or ecx, dword [eax + esi + 0x11fd4]
jne 0x45bbb7
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
jne 0x459ce1
mov eax, dword [ebp]
push 0
push 0
push 0xb
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x11fcc], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fcc]
test ecx, ecx
je 0x45b764
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fd0], eax
mov dword [ecx + esi + 0x11fd4], edx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov edx, dword [eax + esi + 0x11fd0]
or edx, dword [eax + esi + 0x11fd4]
je 0x45b764
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x14]
imul ecx, ecx, 0xd0
add edi, 0xffffffea
jmp 0x459db6
cmp eax, 1
jne 0x45b764
mov eax, dword [ebp]
push 0
push 0
push 0x13
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x11fcc], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fcc]
test ecx, ecx
je 0x45b764
lea ecx, [esp + 0x13]
push ecx
push 8
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fd0], eax
mov dword [ecx + esi + 0x11fd4], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov ecx, dword [edx + esi + 0x11fd0]
mov eax, dword [edx + esi + 0x11fd4]
mov edx, ecx
or edx, eax
je 0x45b764
test eax, eax
jl 0x45bbb7
jg 0x459d94
test ecx, ecx
jb 0x45bbb7
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x14]
imul ecx, ecx, 0xd0
add edi, 0xffffffde
mov edx, dword [esp + 0x18]
adc edx, 0xffffffff
mov word [ecx + esi + 0x11fd8], ax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov ecx, dword [edx + esi + 0x11f90]
lea eax, [edx + esi + 0x11f90]
inc ecx
mov dword [eax], ecx
jmp 0x45b764
cmp dword [esi + 0x1544c], 0x100
jae 0x45b764
nop
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x45b764
jg 0x459e19
cmp dword [esp + 0x14], 8
jb 0x45b764
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.00458820
test edi, edi
mov dword [esp + 0x24], eax
jl 0x45b764
jg 0x459e51
test ebx, ebx
jbe 0x45b764
cmp edi, dword [esp + 0x18]
jg 0x45b764
jl 0x459e67
cmp ebx, dword [esp + 0x14]
ja 0x45b764
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ecx, 0xfffffff8
adc eax, 0xffffffff
add ebx, 0xfffffff8
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x1544c]
adc edi, 0xffffffff
cmp eax, 0x100
mov dword [esp + 0x14], ecx
jae 0x45a2a2
test edi, edi
jl 0x45a2a2
jg 0x459ea7
cmp ebx, 8
jb 0x45a2a2
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov dword [esp + 0x28], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
mov dword [esp + 0x38], edx
call fcn.00458820
cmp dword [esp + 0x2c], edi
jg 0x45a2a2
jl 0x459ee3
cmp dword [esp + 0x28], ebx
ja 0x45a2a2
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add edx, 0xfffffff8
adc ecx, 0xffffffff
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
add ebx, 0xfffffff8
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
adc edi, 0xffffffff
or ecx, edx
je 0x45a292
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff8
adc edx, 0xffffffff
cmp eax, 0x64617461
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
jne case.0x459feb.2
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x7075726c
je 0x459f51
cmp eax, 0x65676964
jne 0x459f59
mov dword [esp + 0x30], 1
mov eax, dword [esi + 0x1544c]
mov ecx, dword [esp + 0x30]
lea eax, [eax + eax*8]
shl eax, 5
mov dword [eax + esi + 0x3c], ecx
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x24]
push 0
shl edx, 5
push 0
mov dword [edx + esi + 0x38], eax
mov edx, dword [ebp]
push 4
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, 0xfffffff8
add eax, ecx
mov dword [esp + 0x14], eax
mov eax, 0xffffffff
adc edx, eax
add ebx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
adc edi, eax
add edx, ecx
mov ecx, dword [esp + 0x2c]
adc ecx, eax
test edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
jl case.0x459feb.2
jg 0x459fd7
test ebx, ebx
jbe case.0x459feb.2
mov eax, dword [esp + 0x30]
cmp eax, 0x15
ja case.0x459feb.2
movzx eax, byte [eax + 0x45bbe0]
jmp dword [eax*4 + 0x45bbcc]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
push 0
push 0x400000
call fcn.00458ad0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x148], eax
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
mov dword [ecx + esi + 0x14c], edx
call fcn.00446b60
mov ecx, dword [esi + 0x1544c]
lea edx, [ecx + ecx*8]
mov ecx, dword [esp + 0x6c]
shl edx, 5
mov dword [edx + esi + 0x150], eax
mov eax, dword [esp + 0x70]
mov edx, dword [ebp]
add esp, 0x14
push eax
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
push ecx
shl eax, 5
mov ecx, dword [eax + esi + 0x150]
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x5c]
jmp 0x45a107
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
push 0
push 0xffff
call fcn.00458ad0
mov dword [esp + 0x74], eax
inc eax
push eax
mov dword [esp + 0x7c], edx
call fcn.00446b60
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x144], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov edx, dword [ebp]
add esp, 0x14
push eax
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
push ecx
shl eax, 5
mov ecx, dword [eax + esi + 0x144]
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x64]
shl edx, 5
mov ecx, dword [edx + esi + 0x144]
mov byte [eax + ecx], 0
sub dword [esp + 0x14], eax
mov ecx, dword [esp + 0x68]
sbb dword [esp + 0x18], ecx
mov edx, dword [esp + 0x28]
sub ebx, eax
sbb edi, ecx
sub edx, eax
mov dword [esp + 0x28], edx
sbb dword [esp + 0x2c], ecx
jmp 0x45a260
mov eax, dword [esp + 0x24]
cmp eax, 0x74726b6e
je 0x45a13f
cmp eax, 0x6469736b
jne case.0x459feb.21
test edi, edi
jl case.0x459feb.21
jg 0x45a13f
cmp ebx, 6
jb case.0x459feb.21
lea edx, [esp + 0x13]
push edx
push 2
push ebp
mov ecx, esi
call fcn.00458820
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
lea edx, [esp + 0x13]
push edx
shl ecx, 5
push 2
mov dword [ecx + esi + 0x44], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x48], eax
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
shl edx, 5
add ebx, 0xfffffffa
mov dword [edx + esi + 0x40], 2
adc edi, 0xffffffff
jmp 0x45a260
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
shl eax, 5
cmp dword [eax + esi + 0x40], 0x40
jae 0x45a260
push 0
push 4
push edi
push ebx
call fcn.00458ad0
mov ecx, dword [esi + 0x1544c]
add esp, 0x10
mov dword [esp + 0x78], edx
lea edx, [esp + 0x13]
push edx
push eax
mov dword [esp + 0x28], ecx
push ebp
mov ecx, esi
mov dword [esp + 0x80], eax
call fcn.00458820
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*8]
shl edx, 5
mov edx, dword [edx + esi + 0x40]
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*8]
mov dword [esi + ecx*4 + 0x44], eax
mov eax, dword [esi + 0x1544c]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*8]
shl edx, 5
lea eax, [edx + esi + 0x40]
inc dword [eax]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x78]
sbb edx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
sub ebx, eax
sbb edi, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
sbb edx, ecx
mov eax, ebx
or eax, edi
mov dword [esp + 0x2c], edx
jne case.0x459feb.21
inc dword [esi + 0x1544c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
sbb edx, ecx
push 0
sub ebx, eax
push ecx
mov dword [esp + 0x20], edx
mov edx, dword [ebp]
sbb edi, ecx
push eax
mov ecx, ebp
call dword [edx + 0xc]
cmp dword [esi + 0x1544c], 0x100
jb 0x459e94
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub eax, ebx
push 0
push edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
sbb edx, edi
push ebx
mov ecx, ebp
mov dword [esp + 0x24], edx
call dword [eax + 0xc]
cmp dword [esi + 0x1544c], 0x100
jb 0x459e00
jmp 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
mov eax, dword [esi + 0x15478]
test eax, eax
je 0x45b764
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
jne 0x45b784
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 3
jne 0x45b934
test edx, edx
jne 0x45b934
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
test al, al
js 0x45a338
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
jmp 0x45b942
cmp eax, 0x6d657461
je 0x45b7ed
cmp eax, 0x6d696e66
je 0x45b7e6
jmp 0x45b764
cmp eax, 0x73747373
ja 0x45af6b
je 0x459a43
cmp eax, 0x7374636f
ja 0x45a5b8
je 0x459a43
cmp eax, 0x6d766864
je 0x45a4b2
cmp eax, 0x7064696e
je 0x45a3bd
cmp eax, 0x7374626c
je 0x45b7e6
jmp 0x45b764
mov eax, dword [esi + 0xc]
test eax, eax
je 0x45a3cd
mov byte [esi + 0x18], 1
jmp 0x45b764
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
jne 0x45b764
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, 0xfffffffc
push 0
adc ecx, 0xffffffff
push 8
push ecx
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.00682700
or eax, edx
jne 0x45b764
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0
push 8
push eax
push ecx
call fcn.00519400
test eax, eax
mov dword [esi + 8], eax
je 0x45bbb7
cmp eax, 0x200000
jae 0x45bbb7
lea edx, [eax*8]
push edx
call fcn.00446b60
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
add esp, 4
xor edi, edi
test eax, eax
jbe 0x45b764
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + edi*8], eax
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
add ebx, 0xfffffff8
adc edx, 0xffffffff
mov dword [ecx + edi*8 + 4], eax
mov eax, dword [esi + 8]
inc edi
cmp edi, eax
mov dword [esp + 0x18], edx
jb 0x45a468
mov dword [esp + 0x14], ebx
jmp 0x45b764
mov eax, dword [esi + 0x15454]
test eax, eax
jne 0x45bbb7
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
jne 0x45a534
mov eax, dword [ebp]
push 0
push 0
push 0xb
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
mov dword [esi + 0x15454], eax
je 0x45b764
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x15458], eax
mov eax, dword [esp + 0x18]
add ecx, 0xffffffec
adc eax, 0xffffffff
mov dword [esi + 0x1545c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x45b764
cmp eax, 1
jne 0x45b764
mov eax, dword [ebp]
push 0
push 0
push 0x13
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
mov dword [esi + 0x15454], eax
je 0x45b764
lea edx, [esp + 0x13]
push edx
push 8
push ebp
mov ecx, esi
call fcn.00458820
mov dword [esi + 0x15458], eax
mov eax, edx
test eax, eax
mov dword [esi + 0x1545c], edx
jl 0x45bbb7
jg 0x45a59d
mov eax, dword [esi + 0x15458]
test eax, eax
jb 0x45bbb7
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ecx, 0xffffffe0
adc eax, 0xffffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x45b764
sub eax, 0x73747363
je 0x459a43
dec eax
jne 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f94]
test ecx, ecx
jne 0x45bbb7
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
jne 0x45b764
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edi, eax
test edi, edi
je 0x45bbb7
cmp edi, 0x24924
ja 0x45bbb7
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add edx, 0xfffffff8
adc ecx, 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x15450]
mov edx, edi
imul ecx, ecx, 0xd0
imul edx, edx, 0x70
add edx, 4
push edx
mov dword [ecx + esi + 0x11f94], edi
call fcn.00446b60
add esp, 4
test eax, eax
je 0x45a68a
push 0x458570
push edi
lea ebx, [eax + 4]
push 0x70
push ebx
mov dword [eax], edi
call fcn.00401020
jmp 0x45a68c
xor ebx, ebx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
test edi, edi
mov dword [eax + esi + 0x11f98], ebx
jbe 0x45af5c
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], edi
xor ebx, ebx
jmp 0x45a6c0
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x34]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11f98]
lea eax, [esp + 0x13]
push eax
push 4
add edx, edi
push ebp
mov ecx, esi
mov dword [esi + 0x15478], edx
call fcn.00458820
lea ecx, [esp + 0x13]
push ecx
push 4
mov edi, eax
push ebp
mov ecx, esi
mov dword [esp + 0x30], edi
call fcn.00458820
mov edx, dword [esi + 0x15478]
push ebx
push ebx
mov dword [edx], eax
mov eax, dword [ebp]
push 4
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esi + 0x15478]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x15478]
mov eax, dword [eax]
cmp eax, 0x68323634
ja 0x45aa50
je 0x45a7d3
cmp eax, 0x616d6633
ja 0x45a7a4
je 0x45a76e
cmp eax, 0x2e6d7033
je 0x45aa77
cmp eax, 0x48323634
je 0x45a7d3
cmp eax, 0x616d6630
jne 0x45ac5c
mov edx, dword [ebp]
push ebx
lea eax, [edi - 0x10]
push ebx
push eax
mov ecx, ebp
call dword [edx + 0xc]
mov al, byte [esi + 0x1e]
test al, al
jne 0x45af2e
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [esi + 0x1e], 1
mov byte [ecx + esi + 0x11f6b], 1
jmp 0x45af2e
cmp eax, 0x61766331
je 0x45a7d3
cmp eax, 0x67696620
jne 0x45ac5c
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x20], 1
jmp 0x45af20
mov edx, dword [ebp]
push ebx
push ebx
push 0x10
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
mov byte [eax + esi + 0x11f68], 1
call fcn.00458820
lea edx, [esp + 0x13]
push edx
push 2
push ebp
mov ecx, esi
mov dword [esi + 0x30], eax
call fcn.00458820
mov ecx, dword [esi + 0x15450]
mov dword [esi + 0x34], eax
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11f6c]
imul edx, dword [esi + 0x30]
add ecx, esi
mov ecx, dword [ecx + 0x11f78]
imul ecx, eax
lea eax, [edx + ecx + 0x8000]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [esi + 0x15478]
sar eax, 0x10
mov dword [esi + 0x30], eax
mov dword [edx + 0x18], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f70]
mov edx, dword [eax + esi + 0x11f7c]
imul ecx, dword [esi + 0x30]
imul edx, dword [esi + 0x34]
add eax, esi
lea eax, [ecx + edx + 0x8000]
mov ecx, dword [esi + 0x15478]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push ebx
mov dword [esi + 0x34], eax
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp]
push ebx
push 8
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
je 0x45a8c5
mov dword [esi + 0x15478], ebx
jmp 0x45af2e
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 1
jne 0x45a8dd
cmp edx, ebx
je 0x45a8e8
mov dword [esi + 0x15478], ebx
jmp 0x45af2e
mov edx, dword [ebp]
push ebx
push ebx
push 0x20
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [ebp]
push ebx
push ebx
push 2
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 0xffff
jne 0x45a91a
cmp edx, ebx
je 0x45a925
mov dword [esi + 0x15478], ebx
jmp 0x45af2e
mov edx, dword [esi + 0x15478]
mov ecx, dword [edx]
cmp ecx, 0x61766331
lea eax, [edi - 0x56]
jne 0x45aa17
cmp eax, 8
jl 0x45aa0f
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
mov ebx, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
add eax, 0xffffffaa
mov edi, edx
cdq
mov ecx, ebx
add eax, ecx
adc edx, edi
cmp edi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jg 0x45a9e6
jl 0x45a978
cmp ecx, eax
jae 0x45a9e6
mov edx, dword [ebp]
push 1
push edi
push ebx
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 0x61766343
jne 0x45a99e
test edx, edx
je 0x45a9b6
mov eax, dword [esp + 0x44]
add ebx, 1
adc edi, 0
cmp edi, eax
jl 0x45a978
jg 0x45a9e6
cmp ebx, dword [esp + 0x40]
jb 0x45a978
jmp 0x45a9e6
mov edx, dword [ebp]
push 0
push 0xffffffffffffffff
push 0xfffffffffffffff8
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
push ebp
mov ecx, esi
call fcn.00459730
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x15478], 0
xor ebx, ebx
jmp 0x45af2e
cmp ecx, 0x61766331
je 0x45aa2f
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1c], 1
mov edi, dword [ebp]
cdq
push ebx
push edx
push eax
mov ecx, ebp
call dword [edi + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x15478], 0
xor ebx, ebx
jmp 0x45af2e
cmp eax, 0x706e6720
ja 0x45ac4a
je 0x45a7b6
cmp eax, 0x6a706567
je 0x45a7b6
cmp eax, 0x6d703461
jne 0x45ac5c
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
mov byte [eax + esi + 0x11f69], 1
call fcn.00458820
mov edx, dword [ebp]
push ebx
push ebx
push 6
mov ecx, ebp
mov edi, eax
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 8], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
push ebx
mov dword [ecx + 0xc], eax
mov edx, dword [ebp]
push ebx
push 4
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
fild qword [esp + 0x7c]
fmul qword [0x68a890]
fstp qword [ecx + 0x10]
mov edx, dword [esi + 0x15478]
cmp dword [edx], 0x2e6d7033
jne 0x45ab3e
mov al, byte [esi + 0x1d]
test al, al
jne 0x45ab3e
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov byte [esi + 0x1d], 1
mov byte [eax + esi + 0x11f6b], 1
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffdc
cmp edi, 1
mov dword [esp + 0x30], ebx
jne 0x45ab63
mov edx, dword [ebp]
push 0
push 0
push 0x10
mov ecx, ebp
call dword [edx + 0xc]
sub ebx, 0x10
mov dword [esp + 0x30], ebx
mov eax, dword [esi + 0x15478]
cmp dword [eax], 0x6d703461
mov ecx, ebp
jne 0x45ac32
mov edx, dword [ebp]
call dword [edx + 0x18]
mov ebx, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
mov edi, edx
cdq
mov ecx, ebx
add eax, ecx
adc edx, edi
cmp edi, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
jg 0x45ac13
jl 0x45aba5
cmp ecx, eax
jae 0x45ac13
mov eax, dword [ebp]
push 1
push edi
push ebx
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 0x65736473
jne 0x45abcb
test edx, edx
je 0x45abe3
mov eax, dword [esp + 0x4c]
add ebx, 1
adc edi, 0
cmp edi, eax
jl 0x45aba5
jg 0x45ac13
cmp ebx, dword [esp + 0x48]
jb 0x45aba5
jmp 0x45ac13
mov edx, dword [ebp]
push 0
push 0xffffffffffffffff
push 0xfffffffffffffff8
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
push ebp
mov ecx, esi
call fcn.00459730
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x45af2e
mov edi, dword [ebp]
mov eax, ebx
cdq
push 0
push edx
push eax
call dword [edi + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x45af2e
cmp eax, 0x74657874
je 0x45aef4
cmp eax, 0x74783367
je 0x45ac6f
mov edx, dword [ebp]
push ebx
lea eax, [edi - 0x10]
push ebx
push eax
mov ecx, ebp
call dword [edx + 0xc]
jmp 0x45af2e
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6a], 1
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
mov byte [edx + esi + 0x11f6b], 1
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x2c], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x30], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + 0x34], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x38], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x3c], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x40], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x48], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x44], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
mov dword [ecx + 0x4c], eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x50], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x54], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x58], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + 0x5c], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x60], eax
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x15478]
mov eax, dword [edx + 0x64]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x45aece
imul eax, eax, 0x104
push eax
call fcn.00446b60
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x68], eax
mov edx, dword [esi + 0x15478]
mov eax, dword [edx + 0x64]
add esp, 4
test eax, eax
mov dword [esp + 0x60], 0
jbe 0x45aece
xor ebx, ebx
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15478]
mov edx, dword [ecx + 0x68]
mov dword [ebx + edx], eax
mov edx, dword [esi + 0x15478]
mov edx, dword [edx + 0x68]
xor eax, eax
lea edi, [edx + ebx + 4]
mov ecx, 0x40
rep stosd dword es:[edi], eax
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [ebp]
mov edi, eax
mov eax, dword [esi + 0x15478]
mov ecx, dword [eax + 0x68]
push 0
lea eax, [ecx + ebx + 4]
push edi
push eax
mov ecx, ebp
call dword [edx + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
lea edx, [ecx + edi - 3]
mov ecx, dword [esi + 0x15478]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x64]
inc eax
add ebx, 0x104
cmp eax, edx
mov dword [esp + 0x60], eax
jb 0x45ae47
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
push 0
sub eax, ecx
sub eax, 0x30
push 0
mov byte [esi + 0x1f], 1
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x45af2e
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6a], 1
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1f], 1
mov eax, dword [ebp]
push ebx
lea ecx, [edi - 0x10]
push ebx
push ecx
mov ecx, ebp
call dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
sub eax, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
sbb edx, ebx
add ecx, 0x70
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], eax
jne 0x45a6c0
mov dword [esi + 0x15478], 0
jmp 0x459dcd
cmp eax, 0x746b6864
ja 0x45b756
je 0x45b67c
cmp eax, 0x7374737a
je 0x45b4e3
cmp eax, 0x73747473
je 0x459a43
cmp eax, 0x7469746c
jne 0x45b764
cmp dword [esi + 0x1544c], 0x100
jae 0x45b764
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
jne 0x45b764
mov edx, dword [ebp]
push eax
push eax
push 3
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
push 0
push 0xffff
call fcn.00458ad0
mov ecx, dword [esp + 0x34]
mov ebx, eax
mov eax, dword [esi + 0x1544c]
mov edi, edx
lea edx, [eax + eax*8]
shl edx, 5
mov dword [edx + esi + 0x3c], 1
mov eax, dword [esi + 0x1544c]
add esp, 0x10
lea edx, [esp + 0x13]
lea eax, [eax + eax*8]
push edx
shl eax, 5
push 2
mov dword [eax + esi + 0x38], ecx
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
lea edx, [ebx + 1]
shl ecx, 5
push edx
mov dword [ecx + esi + 0x154], eax
call fcn.00446b60
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x144], eax
mov eax, dword [esi + 0x1544c]
mov edx, dword [ebp]
add esp, 4
lea eax, [eax + eax*8]
push edi
shl eax, 5
mov ecx, dword [eax + esi + 0x144]
push ebx
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
shl edx, 5
mov eax, dword [edx + esi + 0x144]
mov ecx, 0xfffffffa
sub ecx, ebx
mov edx, 0xffffffff
sbb edx, edi
mov edi, dword [esp + 0x14]
add edi, ecx
mov ecx, dword [esp + 0x18]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x1544c]
adc ecx, edx
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov dword [esi + 0x1544c], eax
jmp 0x45b764
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fbc]
cmp dword [eax], edi
jne 0x45bbb7
lea edx, [ebx*8]
push edx
mov dword [eax], ebx
call fcn.00446b60
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi + 0x11fc0], eax
jbe 0x45b764
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc0]
mov dword [edx + edi*8], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc0]
mov dword [edx + edi*8 + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x45b107
jmp 0x45b764
push 4
push ebp
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 0x11fb0]
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], edx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffc
mov eax, dword [esp + 0x18]
adc eax, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
jb 0x459b40
jmp 0x459dcd
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f9c]
cmp ecx, edi
lea eax, [eax + esi + 0x11f9c]
jne 0x45bbb7
mov dword [eax], ebx
lea eax, [ebx + ebx*2]
shl eax, 2
mov dword [esp + 0x20], eax
add eax, 0xc
push eax
call fcn.00446b60
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
jbe 0x45b2e9
xor edi, edi
lea ecx, [ecx]
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi]
dec eax
mov dword [edi + edx], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add edx, eax
adc ecx, 0
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov dword [esp + 0x50], edx
mov edx, dword [ecx + esi]
mov dword [edx + edi + 4], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi]
mov dword [edx + edi + 8], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff4
adc edx, 0xffffffff
add edi, 0xc
dec ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jne 0x45b220
mov eax, dword [esp + 0x54]
test eax, eax
ja 0x45bbb7
jb 0x45b2e9
cmp dword [esp + 0x50], 0xffffff
ja 0x45bbb7
mov eax, dword [esi + 0x15450]
add eax, 0x162
imul eax, eax, 0xd0
mov ecx, dword [eax + esi]
mov eax, dword [esp + 0x20]
mov dword [eax + ecx], 0xffffffff
mov edx, dword [esi + 0x15450]
add edx, 0x162
imul edx, edx, 0xd0
mov edx, dword [edx + esi]
xor ecx, ecx
mov dword [edx + eax + 4], ecx
mov edx, dword [esi + 0x15450]
add edx, 0x162
imul edx, edx, 0xd0
mov edx, dword [edx + esi]
mov dword [edx + eax + 4], ecx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f90]
lea eax, [eax + esi + 0x11f90]
inc ecx
mov dword [eax], ecx
jmp 0x45b764
cmp eax, 0x73747373
je 0x45b431
cmp eax, 0x73747473
jne 0x45b764
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fb4]
cmp dword [eax], 0
jne 0x45bbb7
lea edx, [ebx*8]
push edx
mov dword [eax], ebx
call fcn.00446b60
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
xor edi, edi
test ebx, ebx
mov dword [ecx + esi + 0x11fb8], eax
jbe 0x45b33c
jmp 0x45b3c0
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fb8]
mov dword [edx + edi*8], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
test eax, eax
jns 0x45b3fa
xor eax, eax
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fb8]
mov dword [edx + edi*8 + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x45b3c0
jmp 0x45b33c
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fc4]
cmp dword [eax], edi
jne 0x45bbb7
lea edx, [ebx + ebx*2]
shl edx, 3
push edx
mov dword [eax], ebx
call fcn.00446b60
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi + 0x11fc8], eax
jbe 0x45b764
xor edi, edi
lea ebx, [ebx]
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc8]
mov dword [edi + edx], eax
mov eax, dword [esi + 0x15450]
mov edx, dword [esp + 0x18]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fc8]
xor eax, eax
mov dword [ecx + edi + 8], eax
mov dword [ecx + edi + 0xc], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
adc edx, 0xffffffff
add edi, 0x18
dec ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jne 0x45b480
jmp 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fa4]
test ecx, ecx
jne 0x45bbb7
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
or eax, edx
jne 0x45b764
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push 0
adc ecx, 0xffffffff
push 4
push ecx
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.00519400
push edx
push eax
lea edx, [esp + 0x1b]
push edx
push 4
push ebp
mov ecx, esi
call fcn.00458820
push 0
push eax
call fcn.00458ad0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x45b589
test edi, edi
je 0x45bbb7
jmp 0x45b595
cmp ebx, 0x400000
ja 0x45bbb7
cmp edi, 0xffffff
ja 0x45bbb7
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
test edi, edi
jne 0x45b625
lea ecx, [ebx*4]
push ecx
mov dword [eax + esi + 0x11fa4], ebx
call fcn.00446b60
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
add esp, 4
test ebx, ebx
mov dword [edx + esi + 0x11fa8], eax
jbe 0x45b662
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fa8]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffffc
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x45b5e3
jmp 0x45b662
push 4
mov dword [eax + esi + 0x11fa4], 1
call fcn.00446b60
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fa8], eax
mov edx, dword [esi + 0x15450]
add esp, 4
imul edx, edx, 0xd0
mov eax, dword [edx + esi + 0x11fa8]
mov dword [eax], edi
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11f90]
inc dword [eax]
jmp 0x45b764
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x45bbb7
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.00458820
push 0
push 0
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
push 3
mov ecx, ebp
call dword [eax + 0xc]
mov eax, dword [esp + 0x20]
add edi, 0xfffffffc
adc ebx, 0xffffffff
test eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
jne 0x45b6d4
mov edx, dword [ebp]
push 0
push 0
push 0x14
mov ecx, ebp
call dword [edx + 0xc]
add edi, 0xffffffec
jmp 0x45b6f8
cmp dword [esp + 0x20], 1
jne 0x45b764
mov eax, dword [ebp]
push 0
push 0
push 0x20
mov ecx, ebp
call dword [eax + 0xc]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
add edi, 0xffffffe0
mov edx, dword [ebp]
push 0
push 0
push 0x10
mov ecx, ebp
adc ebx, 0xffffffff
call dword [edx + 0xc]
add edi, 0xfffffff0
adc ebx, 0xffffffff
mov dword [esp + 0x20], 0
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esi + 0x15450]
mov ecx, dword [esp + 0x20]
imul edx, edx, 0x34
add edx, ecx
add edi, 0xfffffffc
adc ebx, 0xffffffff
inc ecx
cmp ecx, 9
mov dword [esi + edx*4 + 0x11f6c], eax
mov dword [esp + 0x20], ecx
jl 0x45b717
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
jmp 0x45b764
cmp eax, 0x7472616b
je 0x45b7a0
cmp eax, 0x75647461
je 0x45b7e2
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp]
push 0
push ecx
push edx
mov ecx, ebp
call dword [eax + 0xc]
mov al, byte [esp + 0x13]
test al, al
je 0x4597d0
mov al, byte [esp + 0x1f]
test al, al
je 0x45b87b
mov al, byte [esi + 0x19]
pop edi
pop ebx
pop ebp
pop esi
add esp, 0xc4
ret 0x14
mov eax, dword [esi + 0x15450]
cmp eax, 0x40
jae 0x45bbbb
mov ecx, dword [esi + 0x15454]
inc eax
mov dword [esi + 0x15450], eax
imul eax, eax, 0xd0
mov dword [eax + esi + 0x11fcc], ecx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x1201c], 0xffffffff
jmp 0x45b838
mov eax, dword [esp + 0x24]
cmp eax, 0x6d657461
jne 0x45b7fd
mov eax, dword [ebp]
push 0
push 0
push 4
mov ecx, ebp
call dword [eax + 0xc]
jmp 0x45b838
cmp eax, 0x6d6f6f76
jne 0x45b838
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
mov dword [esi + 0x15468], eax
mov dword [esi + 0x1546c], edx
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp ecx, edx
jg 0x45bb9f
jl 0x45b838
cmp dword [esp + 0x38], eax
ja 0x45bb9f
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xe0]
push ecx
mov ecx, dword [esp + 0xe0]
push edx
push eax
push ecx
push ebp
mov ecx, esi
call fcn.00459730
test al, al
je 0x45bbbb
cmp dword [esp + 0x24], 0x6d6f6f76
jne 0x4597d0
mov ecx, esi
call fcn.004585b0
mov byte [esi + 0x19], 1
pop edi
pop ebx
pop ebp
mov al, 1
pop esi
add esp, 0xc4
ret 0x14
mov byte [esi + 0x18], 1
jmp 0x45b784
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
jmp 0x45b784
mov eax, dword [esi + 0x15478]
test eax, eax
je 0x45b784
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esi + 0x15478]
push 0
push 4
lea ecx, [esp + 0x28]
mov dword [edx + 0x28], edi
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x10]
mov eax, dword [esp + 0x20]
cmp al, 1
jne 0x45bbbb
movzx edx, ah
movzx eax, byte [esp + 0x23]
mov dword [esi + 0x28], eax
mov al, byte [esi + 0x1b]
test al, al
mov dword [esi + 0x24], edx
jne 0x45b784
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6b], 1
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1c], 1
jmp 0x45b784
mov edx, dword [ebp]
push 0
push 0
push 2
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 4
jne 0x45b784
test edx, edx
jne 0x45b784
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
test al, al
js 0x45b962
mov edx, dword [ebp]
push 0
push 0
push 0xd
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
cmp eax, 5
jne 0x45b784
test edx, edx
jne 0x45b784
xor edi, edi
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
mov edx, eax
and edx, 0x7f
shl edi, 7
or edi, edx
test al, al
js 0x45b9a5
cmp edi, 0x100000
jae 0x45b784
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x20], eax
lea eax, [esp + 0x13]
push eax
mov dword [ecx + 0x24], edx
mov edx, dword [esi + 0x15478]
push 1
push ebp
mov ecx, esi
mov dword [edx + 0x28], edi
call fcn.00458820
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
mov ebx, eax
call fcn.00458820
mov edi, eax
mov eax, ebx
shr eax, 3
cmp eax, 1
mov dword [esi + 0x2c], eax
je 0x45ba28
cmp eax, 2
je 0x45ba28
cmp eax, 5
jne 0x45b784
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
and ebx, 7
mov eax, edi
shr eax, 7
shl ebx, 1
or eax, ebx
cmp eax, 0xf
mov dword [esp + 0x94], 0x17700
mov dword [esp + 0x98], 0x15888
mov dword [esp + 0x9c], 0xfa00
mov dword [esp + 0xa0], 0xbb80
mov dword [esp + 0xa4], 0xac44
mov dword [esp + 0xa8], 0x7d00
mov dword [esp + 0xac], 0x5dc0
mov dword [esp + 0xb0], 0x5622
mov dword [esp + 0xb4], 0x3e80
mov dword [esp + 0xb8], 0x2ee0
mov dword [esp + 0xbc], 0x2b11
mov dword [esp + 0xc0], 0x1f40
je 0x45bafc
fild dword [esp + eax*4 + 0x94]
mov edx, dword [esi + 0x15478]
shr edi, 3
and edi, 0xf
fstp qword [edx + 0x10]
mov eax, dword [esi + 0x15478]
mov dword [eax + 8], edi
jmp 0x45bb73
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.00458820
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
mov ebx, eax
call fcn.00458820
mov dword [esp + 0x20], eax
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.00458820
mov edx, dword [esp + 0x20]
and edi, 0x3f
shl edi, 7
or edi, ebx
shl edi, 8
or edi, edx
mov ecx, eax
shl edi, 1
shr ecx, 7
or edi, ecx
test edi, edi
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
jge 0x45bb5b
fadd qword [0x68a838]
mov edx, dword [esi + 0x15478]
fstp qword [edx + 0x10]
mov ecx, dword [esi + 0x15478]
shr eax, 3
and eax, 0xf
mov dword [ecx + 8], eax
mov al, byte [esi + 0x1a]
test al, al
jne 0x45b784
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1d], 1
jmp 0x45b784
cmp ecx, dword [esp + 0xe0]
jl 0x45bbbb
jg 0x45bbb7
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0xdc]
jbe 0x45bbbb
mov byte [esi + 0x18], 1
pop edi
pop ebx
pop ebp
xor al, al
pop esi
add esp, 0xc4
ret 0x14