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

Disassembly:
push 0xffffffffffffffff
push 0x676265
mov eax, dword fs:[0]
push eax
sub esp, 0x1bc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x702ca8]
xor eax, esp
push eax
lea eax, [esp + 0x1d0]
mov dword fs:[0], eax
mov esi, ecx
mov dword [esp + 0x20], esi
xor edi, edi
mov dword [esp + 0x1d8], edi
call fcn.00432fc0
mov dword [esi], 0x6c60f8
mov dword [esi + 0x20], 0x6c6148
mov dword [esi + 0x90], edi
mov dword [esi + 0x94], edi
mov dword [esi + 0x98], edi
mov dword [esi + 0x9c], edi
mov dword [esi + 0xa4], edi
mov dword [esi + 0xa8], edi
mov dword [esi + 0xac], edi
mov byte [esp + 0x1d8], 2
push 0x90
mov byte [esi + 0xb0], 1
mov dword [esi + 0xb4], edi
mov dword [esi + 0xb8], edi
mov dword [esi + 0xbc], edi
mov dword [esi + 0xc0], edi
mov dword [esi + 0xc4], 1
mov dword [esi + 0xc8], edi
call fcn.00604431
add esp, 4
cmp eax, edi
je 0x45e699
mov ecx, eax
call fcn.00432fc0
jmp 0x45e69b
xor eax, eax
push eax
mov ecx, esi
mov dword [esi + 0xb4], eax
call fcn.0043f5f0
mov eax, dword [esp + 0x1e4]
mov ebx, 0x10
cmp dword [esp + 0x1f8], ebx
jae 0x45e6c5
lea eax, [esp + 0x1e4]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x17
mov ebp, 0xf
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push 0x6c5d5c
mov byte [ecx + 4], 0
call fcn.004027b0
lea eax, [esp + 0xe8]
push eax
call fcn.00488db0
add esp, 0x24
mov byte [esp + 0x1d8], 3
cmp dword [eax + 0x18], ebx
jb 0x45e70c
mov eax, dword [eax + 4]
jmp 0x45e70f
add eax, 4
push eax
push 0x6c5d48
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 8
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push 0x6ba1c0
mov byte [ecx + 4], 0
call fcn.004027b0
mov ecx, dword [0x717c9c]
mov edx, dword [ecx + 0x10]
push edx
call fcn.0045bb10
add esp, 0x28
mov byte [esp + 0x1d8], 2
cmp dword [esp + 0xe0], ebx
jb 0x45e767
mov eax, dword [esp + 0xcc]
push eax
call fcn.0060445c
add esp, 4
push edi
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0xffffffffffffffff
push edi
lea edx, [esp + 0x208]
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push edx
mov byte [ecx + 4], 0
call fcn.00402610
lea ecx, [esp + 0x13c]
call fcn.0046b630
mov byte [esp + 0x1d8], 4
mov eax, dword [0x717c9c]
mov ecx, dword [eax + 0x1c]
cmp dword [ecx + 0x30], ebx
mov ebx, dword [esp + 0x1fc]
jg 0x45e7e3
test bl, 0x10
jne 0x45e7e3
mov eax, dword [eax + 0xc4]
cmp eax, ebp
jne 0x45e7d1
lea edx, [esp + 0x11c]
push edx
call fcn.0046c750
jmp 0x45e7e3
cmp eax, 0xc
jne 0x45e7e3
lea eax, [esp + 0x11c]
push eax
call fcn.0046c4d0
test bl, 1
mov cl, byte [esp + 0x1b4]
mov byte [esi + 0xb0], cl
je 0x45e7fc
mov byte [esi + 0xb0], 1
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1b8]
push ebx
push edx
push eax
mov ecx, esi
call fcn.0045f840
mov ecx, dword [esi + 0xbc]
cmp ecx, dword [esp + 0x1b8]
jl 0x45e832
mov edx, dword [esi + 0xc0]
cmp edx, dword [esp + 0x1bc]
jge 0x45e89f
test bl, 2
je 0x45e8ed
jmp 0x45e840
mov eax, dword [esp + 0x1b8]
cmp dword [esi + 0xbc], eax
jl 0x45e85e
mov ecx, dword [esp + 0x1bc]
cmp dword [esi + 0xc0], ecx
jge 0x45e87b
lea edx, [esp + 0x11c]
push edx
call fcn.0046b970
mov eax, dword [esi + 0xc4]
add eax, eax
mov dword [esi + 0xc4], eax
jmp 0x45e840
mov eax, dword [esi + 0xc4]
mov ecx, dword [esi + 0xbc]
mov edx, dword [esi + 0xc0]
imul ecx, eax
imul edx, eax
mov dword [esi + 0x90], ecx
mov dword [esi + 0x94], edx
sub esp, 0x1c
mov dword [esp + 0x34], esp
mov ebx, esp
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x50], esp
push 0x6c5d74
lea ecx, [esp + 0x21c]
push ecx
push eax
call fcn.00402d40
add esp, 0xc
mov ecx, ebx
call fcn.00402cd0
push esi
call fcn.0045fcb0
push edi
lea edx, [esp + 0x120]
push edx
xor ecx, ecx
mov edx, esi
call fcn.00460660
xor ebp, ebp
jmp 0x45f4cf
sub esp, 0x1c
mov dword [esp + 0x34], esp
mov ebx, esp
sub esp, 0x1c
mov eax, esp
mov dword [esp + 0x50], esp
push 0x6c5d74
lea ecx, [esp + 0x21c]
push ecx
push eax
call fcn.00402d40
add esp, 0xc
mov ecx, ebx
call fcn.00402cd0
push esi
call fcn.0045fcb0
mov edx, dword [esp + 0x1b8]
cmp edx, dword [esi + 0xbc]
mov eax, dword [esp + 0x1bc]
setle dl
cmp eax, dword [esi + 0xc0]
mov byte [esp + 0x1e], dl
setle al
test al, al
mov byte [esp + 0x1f], al
mov ecx, 0x6ba06e
jne 0x45e958
mov ecx, 0x6c5d7c
test dl, dl
mov eax, 0x6ba06e
jne 0x45e966
mov eax, 0x6c5d80
push ecx
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 0x12
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push 0x6c5d84
mov byte [ecx + 4], 0
call fcn.004027b0
lea ecx, [esp + 0xec]
push ecx
call fcn.00488db0
add esp, 0x28
mov ebx, 0x10
mov byte [esp + 0x1d8], 5
cmp dword [eax + 0x18], ebx
jb 0x45e9ae
mov eax, dword [eax + 4]
jmp 0x45e9b1
add eax, 4
push eax
push 0x6c5d48
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 8
mov dword [ecx + 0x18], ebp
mov dword [ecx + 0x14], edi
push 0x6ba1c0
mov byte [ecx + 4], 0
call fcn.004027b0
mov edx, dword [0x717c9c]
mov eax, dword [edx + 0x10]
push eax
call fcn.0045bb10
add esp, 0x28
mov byte [esp + 0x1d8], 4
cmp dword [esp + 0xe0], ebx
jb 0x45ea09
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.0060445c
add esp, 4
cmp byte [esp + 0x1e], 0
mov ecx, dword [esp + 0x1bc]
mov edx, dword [esp + 0x1b8]
mov eax, dword [esi + 0xbc]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
jne 0x45ea2f
sub eax, 2
cmp byte [esp + 0x1f], 0
mov esi, dword [esi + 0xc0]
mov dword [esp + 0x24], eax
jne 0x45ea43
sub esi, 2
cmp ecx, edi
mov dword [esp + 0x30], esi
mov dword [esp + 0x54], edi
mov dword [esp + 0x58], esi
jle 0x45edf9
mov eax, dword [esp + 0x68]
cmp dword [esp + 0x58], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x50], 0
mov dword [esp + 0x5c], ecx
jle 0x45ea75
mov dword [esp + 0x58], eax
cmp dword [esp + 0x6c], 0
jle 0x45eddd
xor edx, edx
cmp byte [esp + 0x1f], dl
sete dl
xor eax, eax
cmp byte [esp + 0x1e], al
sete al
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], eax
lea ebx, [ebx]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x6c]
cmp edx, eax
jle 0x45eab2
mov edx, eax
mov dword [esp + 0x5c], edx
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ebp, dword [esp + 0x54]
mov ebx, dword [esp + 0x58]
xor edi, edi
mov dword [esp + 0x84], esi
sub esi, ecx
add edx, ecx
sub ebp, eax
add ebx, eax
cmp esi, edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0xa8], edi
mov dword [esp + 0xac], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edi
mov dword [esp + 0x84], esi
mov dword [esp + 0x88], ebp
mov dword [esp + 0x90], edx
mov dword [esp + 0x8c], ebx
lea ecx, [edi + 1]
jge 0x45eb32
xor esi, esi
mov dword [esp + 0x84], esi
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x28], ecx
cmp ebp, edi
jge 0x45eb4a
xor ebp, ebp
mov dword [esp + 0x88], ebp
mov dword [esp + 0xac], ecx
mov dword [esp + 0x2c], ecx
mov eax, dword [esp + 0x6c]
cmp edx, eax
jle 0x45eb60
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x68]
cmp ebx, eax
jle 0x45eb78
mov ebx, eax
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x8c], ebx
push 0xf0
call fcn.00604431
add esp, 4
mov dword [esp + 0x18], eax
cmp eax, edi
mov byte [esp + 0x1d8], 6
je 0x45ebb1
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0xc0]
mov ecx, dword [ecx + 0xbc]
push edx
push ecx
push eax
call fcn.0045f580
mov edi, eax
jmp 0x45ebb3
xor edi, edi
mov byte [esp + 0x1d8], 4
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xb4]
xor ecx, ecx
cmp dword [eax + 0xc], ecx
jne 0x45ebd7
mov dword [edi + 8], ecx
mov dword [edi + 4], ecx
mov dword [eax + 0xc], edi
jmp 0x45ebf5
test edi, edi
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
je 0x45ebe4
mov dword [edi + 8], edx
test edx, edx
je 0x45ebeb
mov dword [edx + 4], edi
test edi, edi
mov dword [ecx + 8], edi
je 0x45ebf5
mov dword [edi + 4], ecx
mov dword [eax + 0x10], edi
mov dword [edi + 0x14], eax
mov eax, dword [esp + 0x20]
mov cl, byte [eax + 0xb0]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x120]
mov byte [edi + 0xb0], cl
push eax
lea ecx, [esp + 0x8c]
mov edx, edi
call fcn.00460660
cmp dword [esp + 0xa8], 0
je 0x45ec86
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
add ecx, 0xffffffff
lea eax, [esi + 1]
mov dword [esp + 0x118], eax
mov dword [esp + 0x9c], ecx
lea eax, [esp + 0x9c]
push eax
lea ecx, [esp + 0x120]
mov dword [esp + 0xa4], edx
push ecx
lea ecx, [esp + 0x114]
mov edx, edi
mov dword [esp + 0x114], esi
mov dword [esp + 0x118], ebp
mov dword [esp + 0x11c], ebx
call fcn.00460660
cmp dword [esp + 0xac], 0
je 0x45eced
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
add eax, 0xffffffff
mov dword [esp + 0xbc], eax
mov dword [esp + 0xb8], edx
lea ecx, [esp + 0xb8]
lea eax, [ebp + 1]
push ecx
lea edx, [esp + 0x120]
mov dword [esp + 0x108], eax
mov eax, dword [esp + 0x94]
push edx
lea ecx, [esp + 0x104]
mov edx, edi
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], ebp
mov dword [esp + 0x110], eax
call fcn.00460660
cmp dword [esp + 0xb4], 0
je 0x45ed57
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x28]
mov eax, ecx
sub eax, esi
add eax, edx
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x2c]
lea edx, [ecx - 1]
mov dword [esp + 0x98], eax
mov dword [esp + 0xf8], ecx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x120]
mov dword [esp + 0xf0], edx
push ecx
lea ecx, [esp + 0xf4]
mov edx, edi
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], ebx
call fcn.00460660
cmp dword [esp + 0xb0], 0
je 0x45edc1
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov eax, ebx
sub eax, ebp
add eax, edx
mov edx, dword [esp + 0x90]
mov dword [esp + 0xc4], eax
lea eax, [ebx - 1]
mov dword [esp + 0xcc], eax
mov dword [esp + 0xc0], ecx
lea eax, [esp + 0xc0]
push eax
lea ecx, [esp + 0x120]
mov dword [esp + 0xd8], edx
push ecx
lea ecx, [esp + 0xd0]
mov edx, edi
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd8], ebx
call fcn.00460660
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x24]
add dword [esp + 0x5c], ecx
add eax, ecx
cmp eax, dword [esp + 0x6c]
mov dword [esp + 0x50], eax
jl 0x45eaa0
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x30]
add dword [esp + 0x58], ecx
add eax, ecx
cmp eax, dword [esp + 0x68]
mov dword [esp + 0x54], eax
jl 0x45ea57
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0xb4]
mov eax, dword [eax + 0xc]
xor ecx, ecx
test eax, eax
je 0x45ee1a
lea esp, [esp]
mov eax, dword [eax + 8]
add ecx, 1
test eax, eax
jne 0x45ee10
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x38], esp
push 0x17
mov esi, 0xf
xor ebp, ebp
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push 0x6c5d98
mov byte [ecx + 4], 0
call fcn.004027b0
lea ecx, [esp + 0xe8]
push ecx
call fcn.00488db0
add esp, 0x24
mov edi, 0x10
mov byte [esp + 0x1d8], 7
cmp dword [eax + 0x18], edi
jb 0x45ee68
mov eax, dword [eax + 4]
jmp 0x45ee6b
add eax, 4
push eax
push 0x6c5d48
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x3c], esp
push 8
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x14], ebp
push 0x6ba1c0
mov byte [ecx + 4], 0
call fcn.004027b0
mov edx, dword [0x717c9c]
mov eax, dword [edx + 0x10]
push eax
call fcn.0045bb10
add esp, 0x28
cmp dword [esp + 0xe0], edi
jb 0x45eebb
mov ecx, dword [esp + 0xcc]
push ecx
call fcn.0060445c
add esp, 4
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], ebp
xor edi, edi
mov byte [esp + 0x1d8], 8
mov dword [esp + 0x7c], edi
mov esi, dword [esp + 0x20]
mov ecx, dword [esi + 0xa4]
mov ebx, dword [esp + 0x30]
add esi, 0xa0
cmp ecx, ebp
je 0x45f34c
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x45f34c
cmp ecx, ebp
je 0x45ef11
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x45ef16
call fcn.006151fe
mov edx, dword [esi + 4]
mov ecx, dword [edx + edi*4]
mov eax, dword [ecx + 0x16c]
mov dword [esp + 0x60], eax
cdq
idiv dword [esp + 0x24]
mov esi, dword [ecx + 0x170]
mov edi, dword [ecx + 0x174]
mov dword [esp + 0x18], ecx
mov ecx, dword [ecx + 0x178]
mov dword [esp + 0x64], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], edi
push 0x168
mov ebp, eax
mov eax, esi
cdq
idiv ebx
mov dword [esp + 0x48], ebp
mov esi, eax
lea eax, [ecx - 1]
cdq
idiv dword [esp + 0x28]
mov dword [esp + 0xa8], esi
mov ecx, eax
lea eax, [edi - 1]
cdq
idiv ebx
sub ecx, ebp
add ecx, 1
mov ebx, ecx
mov dword [esp + 0x4c], ebx
sub eax, esi
add eax, 1
mov edi, eax
mov dword [esp + 0x2c], edi
call fcn.00604431
add esp, 4
mov dword [esp + 0x9c], eax
test eax, eax
mov byte [esp + 0x1d8], 9
je 0x45efb5
push eax
call fcn.0046e980
mov esi, eax
mov dword [esp + 0x70], eax
jmp 0x45efbb
xor esi, esi
mov dword [esp + 0x70], esi
mov eax, edi
imul eax, ebx
mov byte [esp + 0x1d8], 8
lea ecx, [esi + 0x154]
mov dword [esi + 0x148], ebx
mov dword [esi + 0x14c], edi
mov dword [esi + 0x150], eax
call fcn.0046f1e0
mov eax, dword [esi + 0x150]
add eax, eax
add eax, eax
push eax
lea ecx, [esi + 0xa0]
call fcn.00443400
test edi, edi
mov dword [esp + 0x4c], 0
jle 0x45f2a9
mov ecx, dword [esp + 0x30]
mov eax, ecx
neg eax
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xa4]
imul eax, ecx
neg eax
mov dword [esp + 0x80], eax
lea ecx, [ecx]
cmp dword [esp + 0x48], 0
mov dword [esp + 0x78], 0
jle 0x45f286
mov eax, dword [esp + 0x4c]
xor ecx, ecx
cmp byte [esp + 0x1f], cl
sete cl
xor edx, edx
cmp byte [esp + 0x1e], dl
sete dl
mov dword [esp + 0xe4], ecx
mov ecx, dword [esp + 0xa4]
add eax, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0xc0], eax
mov eax, ecx
neg eax
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x44]
imul eax, ecx
neg eax
mov dword [esp + 0xe8], edx
mov dword [esp + 0x74], eax
jmp 0x45f0a0
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x64]
mov ebx, dword [esp + 0x68]
mov esi, dword [esp + 0x6c]
mov dword [esp + 0xc8], eax
add eax, edx
add edi, ecx
add esi, edx
add ebx, ecx
test eax, eax
jge 0x45f0d0
xor eax, eax
mov ecx, dword [esp + 0x24]
cmp eax, ecx
jle 0x45f0da
mov eax, ecx
test esi, esi
jge 0x45f0e0
xor esi, esi
cmp esi, ecx
jle 0x45f0e6
mov esi, ecx
test edi, edi
jge 0x45f0ec
xor edi, edi
mov ecx, dword [esp + 0x30]
cmp edi, ecx
jle 0x45f0f6
mov edi, ecx
test ebx, ebx
jge 0x45f0fc
xor ebx, ebx
cmp ebx, ecx
jle 0x45f102
mov ebx, ecx
mov ecx, dword [esp + 0xe8]
add eax, ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0xe4]
push 0x180
add edi, eax
add esi, ecx
add ebx, eax
call fcn.00604431
add esp, 4
mov dword [esp + 0x94], eax
test eax, eax
mov byte [esp + 0x1d8], 0xa
je 0x45f14a
mov ecx, eax
call fcn.0045e050
mov ebp, eax
jmp 0x45f14c
xor ebp, ebp
mov byte [esp + 0x1d8], 8
mov eax, dword [esp + 0x1b8]
add eax, 0xffffffff
cdq
idiv dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov ecx, dword [edx + 0xb4]
mov ecx, dword [ecx + 0xc]
add eax, 1
imul eax, dword [esp + 0xc0]
add eax, dword [esp + 0x78]
add eax, dword [esp + 0x44]
test ecx, ecx
je 0x45f195
test eax, eax
jle 0x45f195
mov ecx, dword [ecx + 8]
sub eax, 1
test ecx, ecx
jne 0x45f187
mov eax, dword [ebp]
mov edx, dword [eax + 0x70]
mov dword [ebp + 0x158], ecx
mov ecx, ebp
call edx
mov ecx, dword [esp + 0xc8]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], ebx
mov ecx, ebp
mov dword [eax + 0xc], esi
call fcn.00420ae0
mov edi, dword [ebp + 0x158]
mov eax, dword [edi + 0xa4]
add edi, 0xa0
test eax, eax
mov dword [esp + 0x94], ebp
jne 0x45f1e4
xor edx, edx
jmp 0x45f1ec
mov edx, dword [edi + 8]
sub edx, eax
sar edx, 2
test eax, eax
je 0x45f209
mov ecx, dword [edi + 0xc]
sub ecx, eax
sar ecx, 2
cmp edx, ecx
jae 0x45f209
mov eax, dword [edi + 8]
mov dword [eax], ebp
add eax, 4
mov dword [edi + 8], eax
jmp 0x45f22e
mov esi, dword [edi + 8]
cmp eax, esi
jbe 0x45f215
call fcn.006151fe
push esi
push edi
lea edx, [esp + 0x9c]
push edx
lea eax, [esp + 0x90]
push eax
mov eax, edi
call fcn.00460a80
mov eax, dword [esp + 0x70]
mov edi, dword [eax + 0x148]
imul edi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x78]
mov ecx, dword [eax + 0x158]
lea esi, [eax + 0x154]
add edi, ebx
test ecx, ecx
je 0x45f25f
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x45f264
call fcn.006151fe
mov edx, dword [esp + 0xb8]
mov ecx, dword [esi + 4]
add dword [esp + 0x74], edx
add ebx, 1
cmp ebx, dword [esp + 0x48]
mov dword [ecx + edi*4], ebp
mov dword [esp + 0x78], ebx
jl 0x45f0a0
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x9c]
add dword [esp + 0x80], ecx
add eax, 1
cmp eax, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
jl 0x45f030
mov esi, dword [esp + 0x70]
call fcn.0046ea60
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 0x90]
add eax, 0x90
mov dword [esi + 0x90], edx
mov ecx, dword [eax + 4]
mov dword [esi + 0x94], ecx
mov edx, dword [eax + 8]
mov dword [esi + 0x98], edx
mov edx, dword [esp + 0x38]
test edx, edx
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
je 0x45f318
mov ecx, dword [esp + 0x40]
mov eax, edi
sub eax, edx
sub ecx, edx
sar eax, 2
sar ecx, 2
cmp eax, ecx
jae 0x45f318
add dword [esp + 0x7c], 1
mov eax, edi
add eax, 4
mov dword [edi], esi
mov edi, dword [esp + 0x7c]
mov dword [esp + 0x3c], eax
xor ebp, ebp
jmp 0x45eed5
cmp edx, edi
mov esi, edi
jbe 0x45f323
call fcn.006151fe
push esi
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x5c]
push ecx
lea eax, [esp + 0x44]
call fcn.00460a80
add dword [esp + 0x7c], 1
mov edi, dword [esp + 0x7c]
xor ebp, ebp
jmp 0x45eed5
xor edi, edi
mov edi, edi
mov ecx, dword [esi + 4]
cmp ecx, ebp
je 0x45f3cd
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jae 0x45f3cd
cmp ecx, ebp
je 0x45f373
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x45f378
call fcn.006151fe
mov edx, dword [esi + 4]
cmp dword [edx + edi*4], ebp
je 0x45f3c8
mov ecx, edx
cmp ecx, ebp
je 0x45f392
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x45f397
call fcn.006151fe
mov eax, dword [esi + 4]
mov ecx, dword [eax + edi*4]
cmp ecx, ebp
je 0x45f3aa
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push 1
call eax
mov ecx, dword [esi + 4]
cmp ecx, ebp
je 0x45f3bd
mov eax, dword [esi + 8]
sub eax, ecx
sar eax, 2
cmp edi, eax
jb 0x45f3c2
call fcn.006151fe
mov ecx, dword [esi + 4]
mov dword [ecx + edi*4], ebp
add edi, 1
jmp 0x45f350
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x18], ecx
jbe 0x45f3ea
call fcn.006151fe
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x38]
cmp eax, ecx
mov dword [esp + 0x28], eax
jbe 0x45f3f7
call fcn.006151fe
mov edi, dword [esi + 8]
cmp dword [esi + 4], edi
jbe 0x45f404
call fcn.006151fe
mov ebx, dword [esi + 4]
cmp ebx, dword [esi + 8]
jbe 0x45f411
call fcn.006151fe
cmp ebx, edi
je 0x45f43c
mov eax, dword [esi + 8]
sub eax, edi
sar eax, 2
test eax, eax
lea ecx, [eax*4]
lea ebp, [ebx + ecx]
jle 0x45f437
push ecx
push edi
push ecx
push ebx
call fcn.006156b8
add esp, 0x10
mov dword [esi + 8], ebp
xor ebp, ebp
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
jbe 0x45f449
call fcn.006151fe
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
push edx
lea eax, [esp + 0x38]
push eax
mov eax, dword [esp + 0x30]
push eax
lea eax, [esp + 0x40]
push eax
push edi
push esi
push ecx
call fcn.00460d80
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
cmp edx, eax
mov esi, eax
jbe 0x45f484
call fcn.006151fe
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
cmp edx, eax
mov edi, edx
jbe 0x45f497
call fcn.006151fe
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
cmp edi, esi
je 0x45f4c2
sub eax, esi
sar eax, 2
cmp eax, ebp
lea ecx, [eax*4]
lea ebx, [edi + ecx]
jle 0x45f4be
push ecx
push esi
push ecx
push edi
call fcn.006156b8
mov edx, dword [esp + 0x48]
add esp, 0x10
mov dword [esp + 0x3c], ebx
cmp edx, ebp
je 0x45f4cf
push edx
call fcn.0060445c
add esp, 4
mov byte [esp + 0x1d8], 2
mov eax, dword [esp + 0x1c0]
cmp eax, ebp
mov dword [esp + 0x11c], 0x6c7710
mov dword [esp + 0x13c], 0x6c7760
je 0x45f508
push eax
call fcn.0060445c
add esp, 4
mov dword [esp + 0x1c0], ebp
mov eax, dword [esp + 0x1ac]
cmp eax, ebp
mov dword [esp + 0x11c], 0x6c4af8
mov dword [esp + 0x13c], 0x6c4b48
je 0x45f539
push eax
call fcn.0060445c
add esp, 4
mov dword [esp + 0x1ac], ebp
lea ecx, [esp + 0x11c]
call fcn.00433070
cmp dword [esp + 0x1f8], 0x10
jb 0x45f55f
mov edx, dword [esp + 0x1e4]
push edx
call fcn.0060445c
add esp, 4
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1d0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c8
ret 0x20