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

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x54
mov edi, ecx
mov esi, dword [esp + 0x68]
movsx eax, byte [0x873ca8]
test eax, eax
jne 0x45fb2d
mov ebp, dword [esi + 0x20]
sub ebp, dword [esi + 0x10]
add ebp, 1
mov ebx, dword [esi + 0x28]
sub ebx, dword [esi + 0x18]
add ebx, 1
mov edx, dword [0x873a6c]
mov eax, dword [0x873a70]
test ebp, ebp
jle 0x45fb2d
test ebx, ebx
jle 0x45fb2d
test edx, edx
jle 0x45fb2d
test eax, eax
jle 0x45fb2d
mov ecx, dword [edi]
mov dword [esp + 0x50], ecx
test ecx, ecx
jne 0x45f910
movsx ecx, byte [0x8736b8]
test ecx, ecx
je 0x45f910
movsx ecx, byte [0x8736bc]
test ecx, ecx
je 0x45f910
cmp byte [0x87399c], 1
je 0x45fb37
cmp byte [0x8739a0], 1
je 0x45fb37
xor eax, eax
mov dword [0x87391c], eax
mov dword [0x873920], eax
mov eax, dword [esi + 0xc0]
call fcn.00460154
test eax, eax
je 0x45f906
movsx eax, byte [0x8736b8]
test eax, eax
je 0x45f8f3
push 0x87de5c
push 0x8792b0
call fcn.00409c40
add esp, 8
xor eax, eax
mov byte [0x873700], al
mov byte [0x59cc68], 1
mov byte [0x8736b8], al
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov ecx, dword [esi + 0x88]
mov dword [edi + 0x2c4], ecx
mov ecx, dword [esi + 0x8c]
neg ecx
mov dword [edi + 0x2c8], ecx
mov ecx, dword [esp + 0x50]
test ecx, ecx
jne 0x45f94f
movsx ecx, byte [0x87399c]
cmp ecx, 1
je 0x45fb6a
cmp byte [0x8739a0], 1
je 0x45fb6a
xor ecx, ecx
mov dword [0x87391c], ecx
mov dword [0x873920], ecx
cmp dword [edi], 0
jle 0x45feb3
mov ecx, dword [esi + 0x8c]
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebx
mov ebx, dword [esi + 0x10]
mov dword [esp + 0x38], ebx
mov eax, dword [esi + 0x70]
add eax, 0
add eax, ebx
mov dword [esp + 0x3c], eax
mov ebp, dword [esi + 0x78]
add ebp, 0
add ebp, dword [esi + 0x18]
mov dword [esp + 0x40], ebp
dec ecx
sub ecx, dword [esi + 0x28]
cdq
mov dword [0x873538], eax
mov dword [0x87353c], edx
mov eax, ebp
cdq
mov dword [0x873540], ebp
mov dword [0x873544], edx
mov eax, ebx
cdq
mov dword [0x873548], ebx
mov dword [0x87354c], edx
mov eax, ecx
cdq
mov dword [0x873550], ecx
mov dword [0x873554], edx
push dword [edi + 0x2a4]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x48]
mov dword [esp + 0x50], ecx
call dword [0x578414]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x50], eax
mov edx, dword [esp + 0x3c]
test edx, edx
jne 0x45fa71
mov edx, dword [esp + 0x40]
test edx, edx
jle 0x45fa71
mov edx, dword [esi + 0x8c]
mov dword [esp + 0x34], edx
mov eax, dword [esp + 0x40]
lea eax, [ebx + eax]
cmp eax, edx
jl 0x45fa71
mov dword [esp + 0x30], edi
mov ecx, edx
mov dword [esp + 0x48], ecx
mov edx, dword [esi + 0x10]
lea edi, [edi + 0x2c0]
mov ebx, dword [0x87391c]
add ebx, dword [esi + 0x70]
add ebx, edx
mov dword [esp + 0x4c], ebx
mov eax, dword [0x873920]
add eax, dword [esi + 0x78]
xor ebx, ebx
push 0xcc0020
push ebx
push edi
push dword [esi + 0xc0]
push ecx
push ebp
push ebx
push edx
push ecx
push ebp
push eax
mov edx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x80]
push edx
mov ebx, ecx
mov edi, dword [esp + 0x64]
call dword [0x578070]
jmp 0x45faa7
lea edx, [edi + 0x2c0]
push 0xcc0020
push 0
push edx
push dword [esi + 0xc0]
push ebx
push ebp
push ecx
mov edx, dword [esp + 0x54]
push edx
push ebx
push ebp
mov edx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x68]
push edx
mov edx, dword [esp + 0x80]
push edx
call dword [0x578070]
mov eax, ebp
imul eax, ebx
add eax, eax
add eax, eax
cdq
mov dword [0x8734e0], eax
mov dword [0x8734e4], edx
mov ecx, dword [0x873920]
mov eax, dword [0x873920]
cdq
add ecx, dword [esi + 0x78]
adc edx, dword [esi + 0x7c]
add ecx, dword [esi + 0x18]
adc edx, dword [esi + 0x1c]
mov dword [0x8734e8], ecx
mov dword [0x8734ec], edx
mov eax, dword [esi + 0x8c]
cdq
sub eax, dword [esi + 0x28]
sbb edx, dword [esi + 0x2c]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [0x8734f0], eax
mov dword [0x8734f4], edx
mov eax, ebp
cdq
mov dword [0x873558], ebp
mov dword [0x87355c], edx
mov eax, ebx
cdq
mov dword [0x873560], ebx
mov dword [0x873564], edx
mov ebx, dword [esp + 0x50]
push ebx
push dword [edi + 0x2a4]
call dword [0x578410]
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov ecx, dword [0x873a5c]
sub ecx, edx
mov edx, ecx
shr edx, 0x1f
add ecx, edx
sar ecx, 1
mov dword [0x87391c], ecx
mov ebx, dword [0x873a60]
sub ebx, eax
mov eax, ebx
shr eax, 0x1f
add ebx, eax
sar ebx, 1
mov dword [0x873920], ebx
jmp 0x45f8c7
mov ebx, dword [esi + 0x88]
mov dword [esp + 0x38], ebx
mov ebp, dword [esi + 0x8c]
mov dword [esp + 0x34], ebp
mov ebp, dword [0x873a5c]
sub ebp, edx
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebx
sar ebp, 1
mov dword [0x87391c], ebp
mov ebp, dword [0x873a60]
sub ebp, eax
mov ebx, ebp
shr ebx, 0x1f
add ebp, ebx
sar ebp, 1
mov dword [0x873920], ebp
movsx ebx, byte [0x59cc64]
test ebx, ebx
je 0x45fbc4
cmp byte [0x59cc68], 1
je 0x45fd1f
test ecx, ecx
jne 0x45fbd5
cmp byte [0x8739a0], 1
je 0x45fd1f
test ebx, ebx
je 0x45fcb1
movsx ebx, byte [0x59cc68]
test ebx, ebx
jne 0x45fcb1
mov dword [esp + 0x30], edi
mov dword [edi + 0x2c4], edx
mov ebp, eax
neg ebp
mov dword [edi + 0x2c8], ebp
xor edi, edi
mov dword [esp + 0xc], edi
mov ebx, dword [esp + 0x38]
lea ecx, [ebx - 1]
mov dword [esp + 0x10], ecx
mov ebp, dword [esp + 0x34]
lea ecx, [ebp - 1]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov eax, dword [0x8738e8]
mov edx, dword [esi + 0xc0]
xor ecx, ecx
mov edi, dword [esp + 0x30]
call fcn.00461c08
push dword [edi + 0x2a4]
call dword [0x578414]
mov ebx, eax
push 3
push ebx
call dword [0x578030]
mov eax, dword [0x873a6c]
mov esi, dword [0x873a70]
lea edx, [edi + 0x2c0]
xor ebp, ebp
push 0xcc0020
push ebp
push edx
push dword [0x8738e8]
push esi
push eax
push ebp
push ebp
push esi
push eax
push dword [0x873920]
push dword [0x87391c]
push ebx
call dword [0x578070]
push ebx
push dword [edi + 0x2a4]
call dword [0x578410]
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4
push dword [edi + 0x2a4]
call dword [0x578414]
mov ebx, eax
push 3
push ebx
call dword [0x578030]
lea edx, [edi + 0x2c0]
xor eax, eax
push 0xcc0020
push eax
push edx
push dword [esi + 0xc0]
mov esi, dword [esp + 0x44]
push esi
mov ebp, dword [esp + 0x4c]
push ebp
push eax
push eax
push dword [0x873a70]
push dword [0x873a6c]
push dword [0x873920]
push dword [0x87391c]
push ebx
call dword [0x578070]
push ebx
push dword [edi + 0x2a4]
call dword [0x578410]
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov dword [edi + 0x2c4], edx
mov ebx, eax
neg ebx
mov dword [edi + 0x2c8], ebx
movzx ebp, byte [0x5b9ad4]
test ebp, ebp
je 0x45fdd9
movzx ebx, byte [0x59c04c]
test ebx, ebx
je 0x45fdd9
mov dword [esp + 0x30], edi
lea ecx, [edx + edx]
add ecx, ecx
sub ecx, edx
lea edx, [edx + ecx*8]
add edx, edx
add edx, edx
lea ecx, [eax + eax]
add ecx, ecx
sub ecx, eax
lea edi, [eax + ecx*8]
add edi, edi
add edi, edi
mov esi, dword [esp + 0x38]
lea eax, [esi + esi]
add eax, eax
sub eax, esi
lea eax, [esi + eax*8]
add eax, eax
lea ebx, [eax + eax - 0x64]
mov ebp, dword [esp + 0x34]
lea eax, [ebp + ebp]
add eax, eax
sub eax, ebp
lea eax, [ebp + eax*8]
add eax, eax
lea eax, [eax + eax - 0x64]
xor ecx, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], edi
mov eax, dword [0x8738e8]
mov edx, dword [esp + 0x68]
mov edx, dword [edx + 0xc0]
xor ecx, ecx
mov edi, dword [esp + 0x30]
call fcn.00462b9c
jmp 0x45fe4c
mov dword [esp + 0x30], edi
lea esi, [edx + edx]
add esi, esi
sub esi, edx
lea ebp, [edx + esi*8]
add ebp, ebp
add ebp, ebp
lea edi, [eax + eax]
add edi, edi
sub edi, eax
lea ebx, [eax + edi*8]
add ebx, ebx
add ebx, ebx
mov ecx, dword [esp + 0x38]
lea eax, [ecx + ecx]
add eax, eax
sub eax, ecx
lea eax, [ecx + eax*8]
add eax, eax
lea edx, [eax + eax - 0x64]
mov eax, dword [esp + 0x34]
lea esi, [eax + eax]
add esi, esi
sub esi, eax
lea esi, [eax + esi*8]
add esi, esi
lea esi, [esi + esi - 0x64]
xor edi, edi
push ebx
push ebp
push eax
push ecx
push edi
push edi
push esi
push edx
push edi
push edi
mov eax, dword [esp + 0x90]
push dword [eax + 0xc0]
push dword [0x8738e8]
mov edi, dword [esp + 0x60]
call fcn.00461fb4
add esp, 0x30
push dword [edi + 0x2a4]
call dword [0x578414]
mov ebx, eax
push 3
push ebx
call dword [0x578030]
mov eax, dword [0x873a6c]
mov esi, dword [0x873a70]
lea edx, [edi + 0x2c0]
xor ebp, ebp
push 0xcc0020
push ebp
push edx
push dword [0x8738e8]
push esi
push eax
push ebp
push ebp
push esi
push eax
push dword [0x873920]
push dword [0x87391c]
push ebx
call dword [0x578070]
push ebx
push dword [edi + 0x2a4]
call dword [0x578410]
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4
mov ecx, dword [esi + 0x88]
mov dword [esp + 0x34], ecx
cmp ecx, edx
jne 0x45fed1
mov ecx, dword [esi + 0x8c]
cmp ecx, eax
je 0x45f96c
jmp 0x45fed7
mov ecx, dword [esi + 0x8c]
mov dword [edi + 0x2c4], edx
mov ebx, eax
neg ebx
mov dword [edi + 0x2c8], ebx
cmp byte [0x59cc68], 1
jne 0x46008d
movsx ebx, byte [0x8739bc]
test ebx, ebx
jne 0x46001c
movzx ebx, byte [0x5b9ad4]
test ebx, ebx
je 0x45ffa8
movzx ebx, byte [0x59c04c]
test ebx, ebx
je 0x45ffa8
mov dword [esp + 0x30], edi
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x34]
lea edi, [ebp + ebp]
add edi, edi
sub edi, ebp
lea edi, [ebp + edi*8]
add edi, edi
lea edi, [edi + edi - 0x64]
mov dword [esp + 0x10], edi
lea edi, [ecx + ecx]
add edi, edi
sub edi, ecx
lea edi, [ecx + edi*8]
add edi, edi
lea edi, [edi + edi - 0x64]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ecx
lea ecx, [edx + edx]
add ecx, ecx
sub ecx, edx
lea edx, [edx + ecx*8]
add edx, edx
add edx, edx
mov dword [esp + 0x28], edx
lea edx, [eax + eax]
add edx, edx
sub edx, eax
lea eax, [eax + edx*8]
add eax, eax
add eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [0x8738e8]
mov edx, dword [esi + 0xc0]
xor ecx, ecx
mov edi, dword [esp + 0x30]
call fcn.00462b9c
jmp 0x4600d7
mov dword [esp + 0x30], edi
mov esi, dword [esp + 0x34]
lea edi, [esi + esi]
add edi, edi
sub edi, esi
lea ebx, [esi + edi*8]
add ebx, ebx
lea ebp, [ebx + ebx - 0x64]
lea ebx, [ecx + ecx]
add ebx, ebx
sub ebx, ecx
lea ebx, [ecx + ebx*8]
add ebx, ebx
lea ebx, [ebx + ebx - 0x64]
lea edi, [edx + edx]
add edi, edi
sub edi, edx
lea edx, [edx + edi*8]
add edx, edx
add edx, edx
lea edi, [eax + eax]
add edi, edi
sub edi, eax
lea edi, [eax + edi*8]
add edi, edi
add edi, edi
push edi
push edx
push ecx
push esi
xor eax, eax
push eax
push eax
push ebx
push ebp
push eax
push eax
mov esi, dword [esp + 0x90]
push dword [esi + 0xc0]
push dword [0x8738e8]
mov edi, dword [esp + 0x60]
call fcn.00461fb4
add esp, 0x30
jmp 0x4600d7
mov dword [esp + 0x30], edi
mov esi, dword [esp + 0x34]
lea edi, [esi + esi]
add edi, edi
sub edi, esi
lea ebx, [esi + edi*8]
add ebx, ebx
lea ebp, [ebx + ebx - 0x64]
lea ebx, [ecx + ecx]
add ebx, ebx
sub ebx, ecx
lea ebx, [ecx + ebx*8]
add ebx, ebx
lea ebx, [ebx + ebx - 0x64]
lea edi, [edx + edx]
add edi, edi
sub edi, edx
lea edx, [edx + edi*8]
add edx, edx
add edx, edx
lea edi, [eax + eax]
add edi, edi
sub edi, eax
lea edi, [eax + edi*8]
add edi, edi
add edi, edi
push edi
push edx
push ecx
push esi
xor eax, eax
push eax
push eax
push ebx
push ebp
push eax
push eax
mov esi, dword [esp + 0x90]
push dword [esi + 0xc0]
push dword [0x8738e8]
mov edi, dword [esp + 0x60]
call fcn.00461020
add esp, 0x30
jmp 0x4600d7
mov dword [esp + 0x30], edi
xor ebx, ebx
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0x34]
lea edi, [ebp - 1]
mov dword [esp + 0x10], edi
lea edi, [ecx - 1]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov eax, dword [0x8738e8]
mov edx, dword [esi + 0xc0]
xor ecx, ecx
mov edi, dword [esp + 0x30]
call fcn.00461c08
push dword [edi + 0x2a4]
call dword [0x578414]
mov ebp, eax
mov ebx, dword [0x87391c]
add ebx, dword [esi + 0x70]
mov edx, dword [0x873920]
add edx, dword [esi + 0x78]
mov dword [esp + 0x34], edx
push 3
push ebp
call dword [0x578030]
mov ecx, dword [0x873a6c]
mov eax, dword [0x873a70]
lea edx, [edi + 0x2c0]
xor esi, esi
push 0xcc0020
push esi
push edx
push dword [0x8738e8]
push eax
push ecx
push esi
push esi
push eax
push ecx
mov edx, dword [esp + 0x5c]
push edx
push ebx
push ebp
call dword [0x578070]
push ebp
push dword [edi + 0x2a4]
call dword [0x578410]
add esp, 0x54
pop ebx
pop ebp
pop esi
pop edi
ret 4