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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0xcc
mov ecx, dword [esp + 0xe0]
mov ebx, dword [esp + 0xe4]
mov esi, dword [esp + 0xe8]
mov edx, dword [ecx + 8]
mov dword [esp + 0xb8], edx
xor eax, eax
xor edx, edx
mov dword [esp + 0x90], eax
mov ecx, dword [ebx]
test ecx, ecx
jle 0x45d7d2
mov eax, edx
shl eax, 4
lea eax, [eax + edx*8]
mov ebp, dword [esi + 0x37e0]
test ebp, ebp
je 0x45ea88
mov ebp, dword [ebx + 0x34]
mov edi, dword [eax + ebp + 0x10]
mov dword [esp + edx*4 + 0x30], edi
mov edi, dword [eax + ebp + 0xc]
mov dword [esp + edx*4 + 0x40], edi
mov edi, dword [eax + ebp + 4]
imul edi, dword [eax + ebp + 8]
add eax, 0x18
mov dword [esp + edx*4 + 0x50], edi
inc edx
cmp edx, ecx
jl 0x45d79c
cmp ecx, 1
jne 0x45d7df
mov dword [esp + 0x50], 1
mov eax, dword [esi + 0x37b8]
cmp eax, 1
mov dword [esp + 0xb0], eax
je 0x45ea5e
mov eax, dword [esi + 0x37bc]
mov dword [esp + 0xa8], eax
mov al, 1
xor ecx, ecx
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
test edi, edi
jle 0x45d858
mov edx, ecx
shl edx, 4
test al, al
je 0x45ea4b
mov ebp, dword [esi + 0x37cc]
mov ebx, dword [ebp + edx + 4]
cmp ebx, dword [ebp + edx + 8]
je 0x45d836
xor al, al
cmp ebx, 1
je 0x45d842
cmp ebx, 2
je 0x45d842
xor al, al
add edx, 0x10
inc ecx
cmp ecx, edi
jl 0x45d81c
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
mov eax, 8
xor edx, edx
mov ecx, dword [esp + 0xec]
idiv ecx
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0xb0]
mov eax, dword [esi + 4]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0x9c], eax
mov ebp, dword [esi + 0xc]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov dword [esp + 0x98], eax
mov ecx, dword [esp + 0xa8]
mov eax, dword [esi + 8]
imul ecx, dword [esp + 0xb4]
cdq
idiv ecx
mov dword [esp + 0xbc], eax
mov ebp, dword [esi + 0x10]
lea eax, [ebp + ecx - 1]
cdq
idiv ecx
mov edx, dword [esi + 0x4de8]
cmp edx, 1
mov dword [esp + 0xc0], eax
je 0x45ea2a
xor eax, eax
mov dword [esp + 0xc4], eax
cmp edx, 1
je 0x45ea09
xor eax, eax
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x45d90c
sub eax, dword [esp + 0xc4]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x45d925
sub eax, dword [esp + 0x94]
mov dword [esp + 0xbc], eax
mov ecx, dword [esi + 0x78]
mov eax, dword [esp + 0x98]
cmp eax, ecx
jge 0x45d941
mov eax, dword [esp + 0xc4]
add dword [esp + 0x98], eax
mov eax, dword [esi + 0x7c]
mov edx, dword [esp + 0xc0]
cmp edx, eax
mov dword [esp + 0x7c], eax
jge 0x45d961
mov eax, dword [esp + 0x94]
add dword [esp + 0xc0], eax
xor ebp, ebp
test edi, edi
jle 0x45d9b9
mov edx, dword [esi + 0x37cc]
mov eax, ebp
shl eax, 4
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x90]
lea esi, [esi]
lea edi, [edi]
mov ecx, dword [eax + edx + 4]
inc ebp
imul ecx, dword [eax + edx + 8]
add ebx, ecx
add eax, 0x10
cmp ebp, edi
jl 0x45d98a
mov dword [esp + 0x90], ebx
mov ecx, dword [esp + 0x8c]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 8]
test eax, eax
je 0x45dfda
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x45dfda
mov ebp, dword [ebx + 0x34]
mov eax, dword [esp + 0xb0]
add eax, eax
add eax, eax
add eax, eax
mov ecx, dword [ebp + 4]
cdq
idiv ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0xa8]
add eax, eax
add eax, eax
add eax, eax
mov ebp, dword [ebp + 8]
cdq
idiv ebp
mov dword [esp + 0xa8], eax
mov ebp, dword [esi + 0x4c]
mov ecx, dword [esp + 0xac]
lea eax, [ecx + ebp - 1]
cdq
idiv ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x50]
mov ebp, dword [esp + 0xa8]
cdq
xor eax, edx
sub eax, edx
lea eax, [ebp + eax - 1]
cdq
mov ecx, dword [esp + 0x7c]
idiv ebp
mov ebp, dword [ebx + 0x20]
cmp ebp, ecx
jge 0x45e765
mov ecx, dword [esp + 0x90]
mov edx, ecx
shl edx, 7
shl ecx, 7
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edx
mov dword [esp + 0x8c], eax
jmp 0x45da6f
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d8]
jl 0x45dca5
xor eax, eax
mov edx, dword [esp + 0xe4]
mov ecx, dword [edx + 0x34]
mov edx, dword [ecx + 8]
test edx, edx
jle 0x45dca5
lea edi, [ebp + ebp]
add edi, edi
add edi, edi
lea ebx, [eax + eax]
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x74], edi
mov edi, eax
mov dword [esp + 0x88], ebp
mov ebp, edx
imul ebp, dword [esp + 0x74]
add ebp, ebx
cmp ebp, dword [esi + 0x50]
jge 0x45e5aa
mov ebp, dword [esp + 0xe4]
mov eax, dword [ebp + 0x1c]
mov ebp, dword [esi + 0x78]
cmp eax, ebp
jge 0x45dc8c
mov edx, dword [ecx + 4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x78], edi
mov edi, ebp
xor ecx, ecx
mov ebx, dword [esp + 0x68]
imul edi, dword [esp + 0x88]
add edi, eax
mov ebx, dword [ebx]
imul edi, dword [esp + 0x84]
add edi, dword [esi + 0x4de4]
mov dword [esp + 0xac], ebx
test ebx, ebx
jle 0x45db74
mov ebx, dword [esi + 0x37cc]
mov dword [esp + 0xa4], ebx
mov ebx, ecx
shl ebx, 4
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa8]
mov dword [esp + 0x6c], ebp
mov ebp, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
mov eax, dword [edx + ebx + 4]
shl eax, 7
inc ecx
imul eax, dword [edx + ebx + 8]
add edi, eax
add edx, 0x10
cmp ecx, ebp
jl 0x45db4b
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x6c]
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebx, edx
shl ebx, 7
imul ebx, dword [esp + 0x78]
add ebx, edi
xor edi, edi
test edx, edx
jle 0x45dc74
lea ebp, [edi + edi]
add ebp, ebp
add ebp, ebp
mov dword [esp + 0x7c], eax
mov esi, dword [esp + 0xe4]
lea eax, [edx + edx]
add eax, eax
add eax, eax
imul eax, dword [esp + 0x7c]
add eax, ebp
mov ecx, dword [esp + 0xe8]
cmp eax, dword [ecx + 0x4c]
jge 0x45e58a
mov eax, dword [esi + 0x10]
test eax, eax
je 0x45e544
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.0044eb5a
add ebx, 0x80
mov eax, dword [esi + 0x34]
mov edx, dword [esp + 0xe0]
mov ecx, dword [esp + 0xb0]
mov dword [esp], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], esi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x7c]
imul edx, dword [eax + 4]
add edx, edi
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x88]
imul edx, dword [eax + 8]
add edx, dword [esp + 0x78]
mov dword [esp + 0x14], edx
call fcn.0045c32a
test eax, eax
jne 0x45ea9a
add ebp, 8
inc edi
mov eax, dword [esi + 0x34]
mov dword [esp + 0x68], eax
mov edx, dword [eax + 4]
cmp edi, edx
jl 0x45db9c
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
inc eax
cmp eax, ebp
jl 0x45dae4
mov ecx, dword [esp + 0x68]
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x78]
mov edx, dword [ecx + 8]
add ebx, 8
inc edi
cmp edi, edx
jl 0x45daae
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x45dfba
cmp edi, dword [esi + 0x37d8]
jg 0x45dfba
mov eax, dword [esp + 0xbc]
cmp ebp, eax
jl 0x45dfba
mov eax, dword [esp + 0xc0]
cmp ebp, eax
jge 0x45dfba
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x45dcef
mov eax, dword [eax]
test eax, eax
je 0x45de2a
mov eax, dword [esp + 0xe4]
mov eax, dword [eax + 0x1c]
sub eax, dword [esp + 0x9c]
test eax, eax
jle 0x45e6ea
mov edx, ebp
mov ebx, dword [esi + 0x30]
mov ecx, dword [esp + 0x98]
imul ebx, dword [esi + 0x37b8]
imul eax, ebx
mov ebx, dword [esp + 0x9c]
sub edx, dword [esp + 0xbc]
imul edx, dword [esi + 0x37bc]
imul edx, dword [esi + 0x3c]
add edx, eax
mov eax, dword [esp + 0xe0]
imul edx, dword [esp + 0xb4]
add edx, dword [esi + 0x20]
mov dword [eax + 0x2c], edx
cmp ebx, ecx
jge 0x45e662
mov eax, ebp
mov edi, dword [esi + 0x4834]
mov edx, dword [esp + 0x80]
imul eax, dword [esi + 0x78]
add eax, ebx
imul eax, dword [esp + 0x84]
add eax, dword [esi + 0x4de4]
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], edx
call dword [0x6004fee8]
mov edx, edi
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x45e5f9
mov dword [esp + 0xac], edx
mov dword [esp + 0xa8], edi
mov dword [esp + 0xa4], ebx
mov edi, ecx
mov dword [esp + 0x88], ebp
mov ecx, eax
shl ecx, 4
mov edx, ecx
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x45e5db
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0xac]
mov dword [esp + 0x7c], eax
jmp 0x45ddf4
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0x78]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul edx, eax, 0xb4
mov ecx, dword [edx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x45ddea
jmp 0x45e5ca
mov ebx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
cmp ebx, eax
jge 0x45dfba
mov eax, dword [esi + 0x78]
mov dword [esp + 0x78], eax
mov dword [esp + 0x88], ebp
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0xe8]
imul edx, dword [esp + 0x88]
add edx, ebx
imul edx, dword [esp + 0x84]
add edx, dword [eax + 0x4de4]
xor eax, eax
test edi, edi
jle 0x45e737
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x37cc]
mov ebp, dword [esp + 0x88]
shl ebp, 7
mov esi, ebx
shl esi, 4
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], edx
mov dword [esp + 0x7c], ebx
xor ebx, ebx
mov ebp, eax
shl ebp, 4
mov esi, dword [ebp + ecx + 8]
test esi, esi
jle 0x45e72a
lea edi, [eax + eax]
mov edx, dword [ebp + ecx + 4]
mov dword [esp + 0x64], edi
mov dword [esp + 0x68], eax
xor eax, eax
test edx, edx
jle 0x45e710
mov dword [esp + 0xa8], ebx
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x78]
mov dword [esp + 0xac], ebp
jmp 0x45df05
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
mov ecx, dword [esp + 0xe8]
mov ecx, dword [ecx + 0x4ddc]
mov ebp, dword [esp + 0x70]
imul ebp, edi
imul ebp, edx
imul esi, ebp
mov ebp, dword [esp + 0x6c]
add esi, dword [ecx + ebx*2 + 4]
imul ebp, edx
add esi, ebp
shl edi, 7
imul edx, edi
xor ebp, ebp
imul edx, dword [esp + 0xa8]
add esi, edx
mov edx, eax
shl edx, 4
add esi, edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xa4], eax
lea esi, [esi]
lea edi, [edi]
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], 0x10
call dword [0x6004fee8]
mov edi, dword [esp + 0xe8]
mov ecx, dword [edi + 0x37cc]
mov edi, dword [edi + 0x78]
mov edx, dword [esp + 0xac]
mov edx, dword [edx + ecx + 4]
mov eax, edi
shl eax, 4
imul eax, edx
add esi, eax
add ebx, 0x10
inc ebp
cmp ebp, 8
jl 0x45df5a
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
inc eax
cmp eax, edx
jl 0x45defa
jmp 0x45e6fa
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x45e857
inc ebp
mov eax, dword [esi + 0x7c]
cmp ebp, eax
jl 0x45da69
jmp 0x45e75a
mov ebp, dword [ebx + 0x20]
mov eax, dword [esp + 0x7c]
cmp ebp, eax
jge 0x45e517
mov eax, dword [esp + 0x90]
mov edx, eax
shl edx, 7
shl eax, 7
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x6c], edx
mov edi, dword [ebx + 0x1c]
cmp edi, ecx
jge 0x45e508
mov eax, ebp
shl eax, 7
mov dword [esp + 0x64], eax
mov dword [esp + 0x70], ebp
mov ebp, ecx
xor eax, eax
mov edx, dword [ebx + 0x34]
imul ebp, dword [esp + 0x70]
add ebp, edi
mov edx, dword [edx]
imul ebp, dword [esp + 0x6c]
add ebp, dword [esi + 0x4de4]
mov dword [esp + 0xac], edx
test edx, edx
jle 0x45e0ac
mov edx, dword [esi + 0x37cc]
mov esi, dword [esp + 0xac]
mov dword [esp + 0x88], edx
mov edx, eax
shl edx, 4
mov dword [esp + 0xa8], edx
mov ebx, dword [esp + 0x88]
mov dword [esp + 0x8c], ecx
mov ecx, edx
mov dword [esp + 0xa4], edi
nop
mov edx, dword [ecx + ebx + 4]
shl edx, 7
inc eax
imul edx, dword [ecx + ebx + 8]
add ebp, edx
add ecx, 0x10
cmp eax, esi
jl 0x45e07a
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
mov eax, dword [ebx + 0x10]
test eax, eax
jne 0x45e15a
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x45e1c9
mov dword [esp + 0xa4], edi
mov esi, eax
xor edi, edi
mov ecx, dword [esp + esi*4 + 0x50]
test ecx, ecx
jle 0x45e136
lea esi, [esi]
mov dword [esp], ebp
mov dword [esp + 4], 0x80
call dword [0x6004fee4]
mov edx, dword [ebx + esi*4 + 0x24]
mov ecx, dword [esp + 0xe0]
mov word [esp + 0x60], dx
mov edx, dword [esp + esi*4 + 0x40]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
lea edx, [esp + 0x60]
mov dword [esp + 0xc], edx
mov edx, dword [ebx + 0x14]
mov dword [esp + 0x10], edx
call fcn.0044e85a
movsx edx, word [esp + 0x60]
add ebp, 0x80
inc edi
mov dword [ebx + esi*4 + 0x24], edx
cmp edi, dword [esp + esi*4 + 0x50]
jl 0x45e0da
mov edx, dword [ebx]
inc esi
cmp esi, edx
jl 0x45e0cc
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
jmp 0x45e1c9
xor eax, eax
mov edx, dword [ebx]
test edx, edx
jle 0x45e1c9
mov dword [esp + 0xa4], edi
xor esi, esi
mov ecx, dword [esp + eax*4 + 0x50]
test ecx, ecx
jle 0x45e1b3
mov dword [esp + 0xac], eax
mov edi, dword [esp + 0xe0]
mov esi, esi
lea edi, [edi]
mov dword [esp], edi
mov eax, dword [ebx + 0x14]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call fcn.0044e93a
add ebp, 0x80
inc esi
mov eax, dword [esp + 0xac]
cmp esi, dword [esp + eax*4 + 0x50]
jl 0x45e18a
mov edx, dword [ebx]
inc eax
cmp eax, edx
jl 0x45e169
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ecx, dword [esi + 0x78]
mov edx, dword [esp + 0xe0]
mov eax, dword [esi + 0x7c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], ecx
call fcn.0045c32a
test eax, eax
jne 0x45eaaa
mov eax, dword [esp + 0x9c]
cmp edi, eax
jl 0x45e4ea
mov eax, dword [esp + 0x98]
cmp edi, eax
jge 0x45e4da
mov eax, dword [esp + 0xbc]
mov edx, dword [esp + 0x70]
cmp edx, eax
jl 0x45e4ca
mov eax, dword [esp + 0xc0]
cmp edx, eax
jge 0x45e4ba
mov edx, dword [esi + 0x37c0]
cmp edx, dword [esi + 0x37d4]
jg 0x45e4aa
cmp edx, dword [esi + 0x37d8]
jg 0x45e49a
mov ecx, dword [esi + 0x78]
mov eax, ecx
imul eax, dword [esp + 0x70]
add eax, edi
imul eax, dword [esp + 0x6c]
add eax, dword [esi + 0x4de4]
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x45e3ca
mov eax, dword [eax]
test eax, eax
jne 0x45e3ca
xor ebp, ebp
test edx, edx
jle 0x45e4ed
mov eax, dword [esi + 0x37cc]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0xa4], edi
xor ecx, ecx
mov edi, ebp
shl edi, 4
mov ebx, dword [edi + eax + 8]
test ebx, ebx
jle 0x45e8e7
lea edx, [ebp + ebp]
mov esi, dword [esp + 0xa4]
mov dword [esp + 0xa8], edx
mov edx, dword [edi + eax + 4]
shl esi, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0x88], ebp
xor esi, esi
test edx, edx
jle 0x45e8ca
mov eax, ecx
shl eax, 7
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], edi
mov edi, dword [esp + 0xa8]
mov ecx, dword [esp + 0x8c]
jmp 0x45e322
mov ebx, dword [esp + 0x78]
mov ebx, dword [ebx + eax + 8]
mov ebp, esi
shl ebp, 4
mov eax, dword [esp + 0xe8]
mov eax, dword [eax + 0x4ddc]
add ebp, dword [eax + edi*2 + 4]
mov eax, dword [esp + 0x64]
imul eax, ecx
imul eax, edx
imul ebx, eax
add ebp, ebx
mov ebx, edx
imul ebx, dword [esp + 0x80]
imul edx, dword [esp + 0xac]
imul ecx, ebx
add ebp, ecx
add ebp, edx
xor ebx, ebx
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x74]
mov dword [esp], ebp
mov dword [esp + 4], esi
mov dword [esp + 8], 0x10
call dword [0x6004fee8]
mov ecx, dword [esp + 0xe8]
mov eax, dword [ecx + 0x37cc]
mov ecx, dword [ecx + 0x78]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax + 4]
mov edi, ecx
shl edi, 4
imul edi, edx
add ebp, edi
add esi, 0x10
inc ebx
cmp ebx, 8
jl 0x45e36a
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0xa8]
inc esi
cmp esi, edx
jl 0x45e31a
jmp 0x45e8b4
mov ebp, dword [esi + 0x4834]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x68]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call dword [0x6004fee8]
mov edx, dword [esi + 0x4834]
xor eax, eax
mov ecx, dword [esi + 0x37c0]
test ecx, ecx
jle 0x45e94c
mov dword [esp + 0xa8], edx
mov dword [esp + 0xac], ebp
mov dword [esp + 0xa4], edi
mov edi, eax
shl edi, 4
mov edx, edi
add edx, dword [esi + 0x37cc]
mov ebp, dword [edx + 4]
xor ebx, ebx
imul ebp, dword [edx + 8]
test ebp, ebp
jle 0x45e92e
mov dword [esp + 0xb4], edi
mov edi, dword [esp + 0xa8]
mov dword [esp + 0xb0], eax
jmp 0x45e457
mov edx, dword [esi + 0x37cc]
add edx, dword [esp + 0xb4]
mov dword [esp], edi
mov eax, dword [edx + 0xc]
imul ecx, eax, 0xb4
mov edx, dword [ecx + esi + 0x9c]
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], edx
call dword [eax + 0x110]
add edi, 0x80
inc ebx
cmp ebx, ebp
jl 0x45e44a
jmp 0x45e91a
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x45e9aa
inc edi
cmp edi, ecx
jl 0x45e01c
mov ebp, dword [esp + 0x70]
mov eax, dword [esi + 0x7c]
inc ebp
cmp ebp, eax
jl 0x45e004
mov edi, dword [esi + 0x37c0]
cmp edi, dword [esi + 0x37d4]
jg 0x45e537
cmp edi, dword [esi + 0x37d8]
jg 0x45e537
mov eax, 2
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0x30]
mov ecx, dword [esi + 8]
mov dword [esp], eax
mov eax, dword [esi + 0xc]
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x14], eax
call fcn.0044e9aa
add ebx, 0x80
jmp 0x45dbfb
mov eax, dword [esp + 0x7c]
mov esi, dword [esp + 0xe8]
mov ebp, dword [esi + 0x78]
jmp 0x45dc74
mov ebp, dword [esp + 0x88]
mov edi, dword [esi + 0x37c0]
jmp 0x45dca5
mov dword [esp + 0xac], edi
mov eax, dword [esp + 0x7c]
mov edi, dword [esi + 0x37c0]
inc eax
cmp eax, edi
jl 0x45ddba
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x88]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov edx, dword [esp + 0xe4]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x90]
mov eax, dword [esi + 0x7c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov edi, dword [esi + 0x78]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.0045acca
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x45dd56
mov eax, dword [esp + 0xc4]
test eax, eax
je 0x45dfba
mov eax, dword [esp + 0x98]
cmp ebx, eax
jne 0x45dfba
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x90]
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x7c]
mov dword [esp + 0xc], ebx
mov ebx, dword [esi + 0x78]
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.0045acca
jmp 0x45dfba
xor eax, eax
jmp 0x45dd08
mov dword [esp + 0x78], edi
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0xac]
mov esi, dword [ebp + ecx + 8]
inc ebx
cmp ebx, esi
jl 0x45dec9
mov eax, dword [esp + 0x68]
mov edx, dword [esp + 0xe8]
mov edi, dword [edx + 0x37c0]
inc eax
cmp eax, edi
jl 0x45dea7
mov ebx, dword [esp + 0x7c]
inc ebx
mov eax, dword [esp + 0x98]
cmp ebx, eax
jl 0x45de4e
mov ebp, dword [esp + 0x88]
mov esi, dword [esp + 0xe8]
jmp 0x45dfba
mov dword [esp + 0x7c], eax
mov ebx, dword [esp + 0xe4]
mov eax, dword [esi + 0x4ddc]
test eax, eax
je 0x45e779
mov eax, dword [eax]
test eax, eax
je 0x45e825
mov eax, dword [esp + 0x94]
test eax, eax
je 0x45e81a
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x9c]
cmp edx, eax
jg 0x45e830
mov eax, dword [esp + 0x7c]
mov ebp, edx
jmp 0x45e7ad
mov eax, dword [esi + 0x7c]
mov dword [esp], esi
mov edi, dword [esp + 0xe0]
mov edx, dword [esp + 0x90]
mov dword [esp + 4], edi
mov ecx, dword [esi + 0x4834]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x78]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0xec]
mov dword [esp + 0x24], eax
mov al, byte [esp + 0xa0]
mov byte [esp + 0x28], al
call fcn.0045acca
inc ebp
mov eax, dword [esp + 0x98]
cmp ebp, eax
jle 0x45e7aa
jmp 0x45e830
mov edi, dword [esi + 0x37c0]
jmp 0x45e517
mov edi, dword [esi + 0x37c0]
jmp 0x45e517
mov eax, dword [esi + 0x1c]
test eax, eax
jne 0x45e842
mov edi, dword [esi + 0x37c0]
jmp 0x45e517
xor edx, edx
xor eax, eax
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edx
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov ebx, dword [esp + 0xe4]
lea edx, [ebp + 1]
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x1c], 0
add eax, dword [esi + 0x7c]
cmp edx, eax
jne 0x45e88d
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov edx, dword [esi + 0x78]
dec edx
mov eax, 1
mov dword [esi + 0xc], edx
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edx
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x84]
mov edi, dword [esp + 0x78]
mov ebx, dword [edi + eax + 8]
inc ecx
cmp ecx, ebx
jl 0x45e2e4
mov ebp, dword [esp + 0x88]
mov edx, dword [esp + 0xe8]
mov edx, dword [edx + 0x37c0]
inc ebp
cmp ebp, edx
jl 0x45e2aa
mov ecx, dword [esp + 0x8c]
mov edi, dword [esp + 0xa4]
mov esi, dword [esp + 0xe8]
mov ebx, dword [esp + 0xe4]
jmp 0x45e4ed
mov dword [esp + 0xa8], edi
mov eax, dword [esp + 0xb0]
mov ecx, dword [esi + 0x37c0]
inc eax
cmp eax, ecx
jl 0x45e414
mov ebp, dword [esp + 0xac]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0xe4]
mov dword [esp], esi
mov eax, dword [esp + 0xe0]
mov ecx, dword [esi + 0x78]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov edx, dword [esi + 0x7c]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x14], eax
mov al, byte [esp + 0xa0]
mov dword [esp + 0x18], ebp
mov ebp, dword [esp + 0xec]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], ebp
mov byte [esp + 0x28], al
call fcn.0045acca
mov ecx, dword [esi + 0x78]
jmp 0x45e4ed
mov ebp, dword [esp + 0x70]
lea eax, [edi + 1]
cdq
idiv ecx
test edx, edx
mov dword [ebx + 0x1c], edx
je 0x45e9c0
mov dword [ebx + 0x20], ebp
jmp 0x45e9df
lea eax, [ebp + 1]
mov dword [ebx + 0x20], eax
cmp eax, dword [esi + 0x7c]
jne 0x45e9df
mov dword [ebx + 0x20], 0
xor eax, eax
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
sub edi, dword [esp + 0xc4]
mov eax, 1
mov dword [esi + 0xc], edi
sub ebp, dword [esp + 0x94]
mov dword [esi + 0x10], ebp
mov dword [esi + 4], edi
mov dword [esi + 8], ebp
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [esp + 0xa8]
cmp eax, 2
jne 0x45d8ea
mov eax, 1
mov dword [esp + 0x94], eax
jmp 0x45d8f3
mov eax, dword [esp + 0xb0]
cmp eax, 2
jne 0x45d8d8
mov eax, 1
mov dword [esp + 0xc4], eax
jmp 0x45d8e1
mov byte [esp + 0xa0], al
mov ebx, dword [esp + 0xe4]
jmp 0x45d858
mov eax, dword [esi + 0x37bc]
cmp eax, 1
mov dword [esp + 0xa8], eax
jne 0x45d802
xor al, al
mov edi, dword [esi + 0x37c0]
mov byte [esp + 0xa0], al
jmp 0x45d858
mov dword [ebx + edx*4 + 0x24], 0
mov ecx, dword [ebx]
jmp 0x45d7aa
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, 0xffffffe7
add esp, 0xcc
pop ebx
pop ebp
pop esi
pop edi
ret