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

Disassembly:
sub esp, 0x9c
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0xb0]
lea eax, [edi + 0x90]
mov dword [esp + 0x18], eax
xor ebx, ebx
mov dword [eax + 0x2c], ebx
mov edx, dword [edi + 0x3c]
lea eax, [esp + 0x20]
push eax
mov eax, dword [edi + 0x34]
lea ecx, [esp + 0x14]
push ecx
mov ecx, dword [edi + 0x38]
push edx
push eax
mov eax, dword [edi + 0x40]
lea esi, [esp + 0x38]
call fcn.004e3ec0
movsx ecx, word [esp + 0x20]
lea edx, [esp + 0x40]
push edx
mov edx, dword [edi + 0x24]
mov dword [esp + 0x38], ecx
mov ecx, dword [edi + 0x2c]
lea eax, [esp + 0x24]
push eax
mov eax, dword [edi + 0x30]
push ecx
mov ecx, dword [edi + 0x28]
push edx
lea esi, [esp + 0x58]
mov dword [esp + 0x4c], ebx
call fcn.004e3ec0
movsx eax, word [esp + 0x30]
mov esi, dword [edi + 0x50]
mov ebp, dword [edi + 0x54]
add esp, 0x20
cmp esi, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
jge 0x4e759d
neg esi
neg ebp
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
cmp ebp, ebx
jge 0x4e75c6
fild dword [esp + 0x58]
mov esi, ebp
neg esi
mov dword [esp + 0x58], esi
fstp qword [esp + 0xa4]
fld qword [esp + 0xa4]
call fcn.00667ad0
mov ebp, eax
mov dword [esp + 0x5c], ebp
cmp esi, ebx
jl 0x4e75ce
cmp ebp, ebx
jge 0x4e75d7
push ebx
call fcn.0044b1f0
add esp, 4
cmp ebp, esi
jle 0x4e75eb
mov eax, esi
mov esi, ebp
neg eax
mov ebp, eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], ebp
mov ecx, ebp
neg ecx
test ebp, ebp
mov dword [esp + 0x78], ebp
mov dword [0x69b664], ebp
mov dword [esp + 0x7c], esi
mov dword [esp + 0x6c], ebx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], esi
jne 0x4e761a
mov dword [esp + 0x10], ebp
jmp 0x4e76cb
movzx edx, word [esp + 0x58]
mov eax, dword [esp + 0x58]
imul edx, edx, 0x2710
shr eax, 0x10
imul eax, eax, 0x2710
mov ecx, edx
shr ecx, 0x10
add eax, ecx
mov dword [esp + 0x14], edx
mov ecx, eax
mov word [esp + 0x16], ax
shr ecx, 0x10
test ecx, ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x9c], eax
je 0x4e76a4
cmp ecx, 0xffffffff
je 0x4e76a4
push 1
lea edx, [ebp + ebp]
push edx
lea eax, [esp + 0xa4]
push eax
call fcn.005e8070
mov ebp, eax
add esp, 0xc
cmp ebp, 0x80000000
mov dword [esp + 0x10], ebp
je 0x4e7693
cmp ebp, 0x7fffffff
jne 0x4e76bd
push 0
push 0x207
call fcn.0047e830
add esp, 8
jmp 0x4e76bd
xor edx, edx
lea ecx, [ebp + ebp]
div ecx
cmp edx, ebp
mov dword [esp + 0x10], eax
jbe 0x4e76b9
inc eax
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x10]
test ebp, ebp
jge 0x4e76cb
mov ecx, dword [esp + 0x10]
neg ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x24]
test eax, eax
mov dword [esp + 0x14], 0
jle 0x4e7b59
mov ebp, dword [esp + 0x30]
jmp 0x4e76f0
mov esi, dword [esp + 0x7c]
mov edi, dword [esp + 0xb0]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x98]
mov eax, ebx
or ecx, 0xffffffff
or edx, 3
test eax, eax
mov dword [esp + 0x70], eax
mov dword [esp + 0x98], edx
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], ecx
jl 0x4e7728
mov ecx, dword [esp + 0x18]
cdq
idiv dword [ecx + 0x18]
jmp 0x4e773b
mov edx, dword [esp + 0x18]
mov ecx, dword [edx + 0x18]
cdq
idiv ecx
xor ecx, ecx
test edx, edx
setne cl
sub eax, ecx
mov edx, dword [edi + 0x4c]
imul edx, dword [esp + 0x14]
lea ebx, [eax + 1]
mov dword [esp + 0x40], ebx
imul ebx, dword [esp + 0x78]
add ebx, edx
mov eax, ebx
cdq
js 0x4e775a
idiv esi
jmp 0x4e7767
idiv esi
xor ecx, ecx
mov edi, edx
test edi, edi
setne cl
sub eax, ecx
mov edi, dword [esp + 0x34]
mov ecx, eax
mov edx, ecx
imul edx, esi
sub ebx, edx
cdq
idiv edi
mov dword [esp + 0x80], ebx
imul edi, eax
sub ecx, edi
mov edi, ecx
jns 0x4e778c
add edi, dword [esp + 0x34]
dec eax
mov ecx, dword [esp + 0x38]
push ebp
push ecx
neg eax
push eax
call fcn.004de010
add eax, dword [esp + 0x4c]
cdq
idiv ebp
add esp, 0xc
test edx, edx
jge 0x4e77aa
add edx, ebp
mov eax, dword [esp + 0x20]
mov ecx, edi
imul edi, ebp
add edi, edx
mov dword [esp + 0x40], edx
mov edx, dword [esp + 0x14]
imul edx, eax
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov word [esp + 0x8e], dx
mov edi, dword [esp + 0x8e]
add edi, eax
mov word [esp + 0x96], di
mov edi, dword [esp + 0x14]
test edi, edi
mov dword [esp + 0x44], ecx
jne 0x4e781a
mov edx, dword [esp + 0x24]
lea edi, [edx - 1]
imul edi, eax
add edi, dword [esp + 0x28]
imul edx, eax
mov word [esp + 0x8c], di
mov word [esp + 0x94], dx
mov word [esp + 0x92], 0
jmp 0x4e7841
movsx edx, dx
mov edi, edx
sub edi, eax
mov word [esp + 0x94], dx
mov word [esp + 0x8c], di
mov edi, dword [esp + 0x14]
mov edx, eax
sub edx, edi
mov word [esp + 0x92], dx
sub eax, dword [esp + 0x14]
dec eax
mov word [esp + 0x90], ax
and dword [esp + 0x98], 0xfffffffb
jmp 0x4e7860
mov esi, dword [esp + 0x7c]
lea esp, [esp]
mov eax, dword [esp + 0x78]
add eax, ebx
cmp eax, esi
mov dword [esp + 0x84], eax
jl 0x4e793e
sub eax, esi
push esi
sub esi, ebx
push esi
mov dword [esp + 0x8c], eax
call fcn.005e7d30
push eax
push eax
call fcn.005e3450
mov edi, dword [esp + 0x20]
push edi
push eax
call fcn.005e3450
mov edx, dword [esp + 0x30]
mov ecx, 0x2710
sub ecx, eax
push edx
lea eax, [esp + 0x3c]
push eax
mov dword [esp + 0xa8], ecx
call fcn.004e5760
mov ecx, dword [esp + 0x64]
mov ebx, dword [esp + 0x54]
add esp, 0x20
inc ecx
mov eax, ecx
cdq
idiv ebx
mov edx, ebx
imul edx, eax
sub ecx, edx
mov esi, ecx
jns 0x4e78d5
add esi, ebx
dec eax
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x38]
push ebp
push ecx
neg eax
push eax
call fcn.004de010
add eax, dword [esp + 0x4c]
cdq
idiv ebp
add esp, 0xc
test edx, edx
jge 0x4e78f7
add edx, ebp
mov eax, dword [esp + 0x84]
mov ecx, esi
imul esi, ebp
add esi, edx
test eax, eax
mov dword [esp + 0x40], edx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], esi
jle 0x4e7ae6
mov edx, dword [esp + 0x7c]
push edx
push eax
call fcn.005e7d30
push eax
push eax
call fcn.005e3450
push edi
push eax
call fcn.005e3450
mov dword [esp + 0xa0], eax
jmp 0x4e7a0b
test eax, eax
jge 0x4e7a22
add eax, esi
test ebx, ebx
mov dword [esp + 0x84], eax
jle 0x4e7994
push esi
push ebx
call fcn.005e7d30
push eax
push eax
call fcn.005e3450
mov edx, dword [esp + 0x20]
push edx
push eax
call fcn.005e3450
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004e5760
mov ebp, dword [esp + 0x50]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x9c]
add esp, 0x20
mov edi, dword [esp + 0x34]
dec ecx
mov eax, ecx
cdq
idiv edi
imul edi, eax
sub ecx, edi
mov edi, ecx
jns 0x4e79ac
add edi, dword [esp + 0x34]
dec eax
mov edx, dword [esp + 0x38]
push ebp
push edx
neg eax
push eax
call fcn.004de010
add eax, dword [esp + 0x4c]
cdq
idiv ebp
add esp, 0xc
test edx, edx
jge 0x4e79ca
add edx, ebp
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x44], edi
imul edi, ebp
push esi
sub esi, ecx
add edi, edx
push esi
mov dword [esp + 0x48], edx
mov dword [esp + 0x50], edi
call fcn.005e7d30
push eax
push eax
call fcn.005e3450
mov ecx, dword [esp + 0x20]
push ecx
push eax
call fcn.005e3450
mov edx, 0x2710
sub edx, eax
mov dword [esp + 0xa0], edx
mov eax, dword [esp + 0x30]
push eax
lea ecx, [esp + 0x3c]
push ecx
call fcn.004e5760
add esp, 0x20
jmp 0x4e7ade
add ebx, eax
movzx edx, bx
imul edx, edx, 0x2710
mov eax, ebx
shr eax, 0x10
imul eax, eax, 0x2710
mov ecx, edx
shr ecx, 0x10
add eax, ecx
mov dword [esp + 0x1c], edx
mov ecx, eax
mov dword [esp + 0x9c], ebx
mov word [esp + 0x1e], ax
shr ecx, 0x10
test ecx, ecx
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
je 0x4e7ab2
cmp ecx, 0xffffffff
je 0x4e7ab2
push 1
lea edx, [esi + esi]
push edx
lea eax, [esp + 0xac]
push eax
call fcn.005e8070
add esp, 0xc
cmp eax, 0x80000000
mov dword [esp + 0x88], eax
je 0x4e7aa1
cmp eax, 0x7fffffff
jne 0x4e7acc
push 0
push 0x207
call fcn.0047e830
add esp, 8
jmp 0x4e7acc
xor edx, edx
lea ecx, [esi + esi]
div ecx
cmp edx, esi
mov dword [esp + 0x88], eax
jb 0x4e7acc
inc eax
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
call fcn.004e5760
add esp, 8
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov esi, dword [esp + 0x48]
mov ebx, dword [esp + 0x84]
inc eax
inc esi
cmp eax, ebp
mov dword [esp + 0x80], ebx
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], esi
jl 0x4e7b1a
mov edx, eax
sub edx, ebp
mov eax, esi
sub eax, ebp
mov dword [esp + 0x40], edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x4c]
jne 0x4e7858
mov ebx, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x6c]
mov edi, dword [esp + 0x60]
mov eax, dword [esp + 0x14]
add esi, ecx
mov ecx, dword [esp + 0x24]
add ebx, edi
inc eax
cmp eax, ecx
mov dword [esp + 0x68], ebx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x14], eax
jl 0x4e76e5
mov edi, dword [esp + 0x18]
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi]
imul ecx, ecx, 0x3c
mov edx, dword [edi + 8]
add ecx, eax
cmp eax, ecx
jae 0x4e7b7c
mov edi, edi
mov dword [edx], eax
add eax, 0x3c
add edx, 4
cmp eax, ecx
jb 0x4e7b70
mov esi, dword [edi + 0x2c]
mov edi, dword [edi + 8]
lea ebx, [esi - 1]
mov ebp, ebx
sar ebp, 1
test ebp, ebp
jl 0x4e7ba2
lea ecx, [ecx]
push 0x4e3f90
push esi
push ebp
call fcn.004e3fd0
add esp, 0xc
dec ebp
jns 0x4e7b90
mov esi, ebx
test esi, esi
jle 0x4e7bcf
jmp 0x4e7bb0
mov edx, dword [edi + esi*4]
mov eax, dword [edi]
push 0x4e3f90
push esi
mov dword [edi], edx
push 0
mov dword [edi + esi*4], eax
call fcn.004e3fd0
add esp, 0xc
dec esi
test esi, esi
jg 0x4e7bb0
mov esi, dword [esp + 0x18]
push esi
call fcn.004e4290
push esi
call fcn.004e46f0
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret