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

Disassembly:
sub esp, 0xf0
push ebx
mov ebx, dword [0x821958]
mov eax, ebx
push ebp
cdq
sub eax, edx
push esi
mov esi, dword [ecx + 0xb0]
mov ebp, dword [0x82195c]
sar eax, 1
add eax, esi
push edi
mov edi, dword [ecx + 0xb4]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
mov eax, edi
mov dword [esp + 0x14], ebp
sub eax, ebp
lea ebp, [ecx + 0xde4]
fstp dword [esp + 0x20]
mov dword [esp + 0x1c], eax
lea ecx, [esp + 0x20]
fild dword [esp + 0x1c]
push ecx
mov edx, ebp
lea ecx, [esp + 0x6c]
mov dword [esp + 0x2c], 0
fstp dword [esp + 0x28]
call fcn.0058e030
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
fld dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
call fcn.0076a6b0
fld dword [esp + 0x24]
mov dword [esp + 0x30], eax
call fcn.0076a6b0
mov dword [esp + 0x34], eax
lea eax, [esi + ebx*2]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
fild dword [esp + 0x18]
cdq
sub eax, edx
lea ecx, [esp + 0x20]
sar eax, 1
add edi, eax
push ecx
fstp dword [esp + 0x24]
mov dword [esp + 0x20], edi
mov edx, ebp
fild dword [esp + 0x20]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x2c], 0
fstp dword [esp + 0x28]
call fcn.0058e030
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
fld dword [esp + 0x20]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
call fcn.0076a6b0
sub esi, ebx
mov edi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], esi
fild dword [esp + 0x18]
mov dword [esp + 0x1c], eax
fstp dword [esp + 0x20]
fild dword [esp + 0x1c]
lea ecx, [esp + 0x20]
mov edx, ebp
push ecx
lea ecx, [esp + 0x6c]
fstp dword [esp + 0x28]
mov dword [esp + 0x2c], 0
call fcn.0058e030
mov edx, dword [eax]
mov dword [esp + 0x20], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
fld dword [esp + 0x24]
mov dword [esp + 0x28], edx
call fcn.0076a6b0
mov ebp, dword [esp + 0x30]
sub edi, ebp
shl edi, 1
mov dword [esp + 0x60], edi
mov edi, dword [esp + 0x34]
sub eax, edi
shl eax, 1
mov dword [esp + 0x64], eax
xor eax, eax
mov dword [esp + 0x2c], eax
lea ebx, [eax + eax*2]
mov dword [esp + 0x38], 0
shl ebx, 3
mov dword [esp + 0x14], ebx
mov ecx, dword [ebx + 0x83a898]
test ecx, ecx
jle 0x69ef57
mov eax, dword [ebx + 0x83a88c]
mov ecx, dword [esp + 0x38]
mov esi, dword [eax + ecx*4]
test esi, esi
mov byte [esi + 0x85], 0
je 0x69eca7
mov al, byte [esi + 0x14]
mov dl, al
shr dl, 2
and dl, 1
mov byte [esp + 0x13], dl
je 0x69ebd9
lea eax, [esi + 0x88]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
cmp eax, ebp
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
jl 0x69ef3c
mov edx, dword [esp + 0x60]
add edx, ebp
cmp eax, edx
jge 0x69ef3c
cmp ecx, edi
jl 0x69ef3c
mov eax, dword [esp + 0x64]
add eax, edi
cmp ecx, eax
jge 0x69ef3c
mov edx, dword [esi]
lea eax, [esp + 0xe8]
push 0
push eax
mov ecx, esi
call dword [edx + 0x4c]
mov ecx, dword [0xa255a0]
mov eax, dword [ecx]
test ah, 0x10
je 0x69eb17
lea edx, [esp + 0x3c]
mov ecx, 0x81a800
push edx
call fcn.00565060
test al, al
jne 0x69ef3c
mov eax, dword [esi]
lea ecx, [esp + 0xc4]
push ecx
mov ecx, esi
call dword [eax + 0x48]
mov edi, dword [0x821c8c]
lea edx, [esp + 0xbc]
push eax
push edx
mov ecx, edi
call fcn.00697c90
mov ecx, eax
mov eax, dword [ecx]
mov dword [esp + 0x18], eax
mov ecx, dword [ecx + 4]
mov dword [esp + 0x1c], ecx
mov edx, dword [edi + 0xb0]
mov edi, dword [edi + 0xb4]
sub eax, edx
sub ecx, edi
cmp eax, 0xfffffe98
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ecx
jl 0x69ef38
mov edx, dword [0xaa6050]
add edx, 0x168
cmp eax, edx
jg 0x69ef38
cmp ecx, 0xffffff4c
jl 0x69ef38
mov eax, dword [0xaa6054]
add eax, 0xb4
cmp ecx, eax
jg 0x69ef38
mov edx, dword [esi]
lea eax, [esp + 0x18]
push 0x821950
push eax
mov ecx, esi
mov byte [esi + 0x85], 1
call dword [edx + 0x104]
mov eax, dword [esp + 0x104]
mov edx, dword [esi]
push 0
push eax
push 0x821950
mov ecx, esi
call dword [edx + 0xfc]
jmp 0x69ef38
and al, 1
mov byte [esp + 0x13], al
je 0x69eca7
lea ecx, [esi + 0x88]
mov edx, ecx
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
cmp eax, ebp
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
jl 0x69ef3c
mov edx, dword [esp + 0x60]
add edx, ebp
cmp eax, edx
jge 0x69ef3c
cmp ecx, edi
jl 0x69ef3c
mov eax, dword [esp + 0x64]
add eax, edi
cmp ecx, eax
jge 0x69ef3c
mov edx, dword [esi]
lea ecx, [esp + 0x94]
lea eax, [esp + 0xdc]
push ecx
push eax
mov ecx, esi
mov byte [esi + 0x85], 1
call dword [edx + 0x48]
mov ecx, dword [0x821c8c]
push eax
call fcn.00697ec0
test al, al
je 0x69ec89
mov edx, dword [esi]
lea eax, [esp + 0x94]
push 0x821950
push eax
mov ecx, esi
call dword [edx + 0x104]
mov edx, dword [esi]
lea eax, [esp + 0x94]
push 0x821950
push eax
mov ecx, esi
call dword [edx + pe_nt_image_headers32]
mov edx, dword [esi]
push 1
mov eax, dword [esp + 0x108]
mov ecx, esi
push eax
push 0x821950
call dword [edx + 0xfc]
jmp 0x69ef3c
mov edx, dword [esi]
mov ecx, esi
call dword [edx + 0x2c]
cmp eax, 4
jne 0x69ed54
mov eax, dword [esi]
lea ecx, [esp + 0xf4]
push ecx
mov ecx, esi
call dword [eax + 0x48]
mov edx, eax
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
cmp eax, ebp
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
jl 0x69ef3c
mov edx, dword [esp + 0x60]
add edx, ebp
cmp eax, edx
jge 0x69ef3c
cmp ecx, edi
jl 0x69ef3c
mov eax, dword [esp + 0x64]
add eax, edi
cmp ecx, eax
jge 0x69ef3c
mov al, byte [esi + 0x100]
mov byte [esi + 0x85], 1
test al, al
jne 0x69ed4b
mov ecx, dword [esi + 0xb0]
mov al, byte [ecx + 0x32f]
test al, al
je 0x69ed4b
mov edx, dword [esi]
lea eax, [esp + 0xd0]
push eax
mov ecx, esi
call dword [edx + 0x48]
push eax
mov ecx, 0x81a800
call fcn.00565060
test al, al
jne 0x69ef3c
mov edx, dword [esi]
push 0
jmp 0x69ec8d
cmp eax, 0x24
jne 0x69edec
mov ecx, dword [esi + 0xb0]
mov al, byte [ecx + 0x283]
test al, al
jne 0x69ed7b
mov al, byte [esi + 0xb5]
test al, al
je 0x69ef3c
lea edx, [esi + 0x88]
mov eax, dword [esi + 0x88]
mov dword [esp + 0x3c], eax
cmp eax, ebp
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
jl 0x69ef3c
mov edx, dword [esp + 0x60]
add edx, ebp
cmp eax, edx
jge 0x69ef3c
cmp ecx, edi
jl 0x69ef3c
mov eax, dword [esp + 0x64]
add eax, edi
cmp ecx, eax
jge 0x69ef3c
lea ecx, [esp + 0x3c]
push ecx
mov ecx, 0x81a800
call fcn.00565060
test al, al
jne 0x69ef3c
mov edx, dword [esi]
mov byte [esi + 0x85], 1
push 0
jmp 0x69ec8d
lea ecx, [esi + 0x88]
mov edx, ecx
mov eax, dword [edx]
mov dword [esp + 0x3c], eax
cmp eax, ebp
mov ecx, dword [edx + 4]
mov dword [esp + 0x40], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x44], edx
jl 0x69ef3c
mov edx, dword [esp + 0x60]
add edx, ebp
cmp eax, edx
jge 0x69ef3c
cmp ecx, edi
jl 0x69ef3c
mov eax, dword [esp + 0x64]
add eax, edi
cmp ecx, eax
jge 0x69ef3c
mov edx, dword [esi]
lea eax, [esp + 0xa4]
push eax
mov ecx, esi
call dword [edx + 0x48]
mov ebx, dword [0x821c8c]
mov edi, eax
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push ecx
push eax
lea ecx, [esp + 0x70]
call fcn.00697c30
mov ecx, eax
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ecx, dword [edi + 8]
mov dword [esp + 0xa0], edx
cdq
and edx, 0xff
add eax, edx
mov ebp, eax
sar ebp, 8
call fcn.00697e60
mov ecx, eax
mov eax, dword [esp + 0xa0]
cdq
and edx, 0xff
mov dword [esp + 0x50], ebp
add eax, edx
sar eax, 8
sub eax, ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x54], eax
mov edx, dword [ebx + 0xb0]
mov eax, dword [ebx + 0xb4]
push ecx
lea ecx, [esp + 0x54]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
call fcn.006a1d50
mov eax, dword [esp + 0x50]
cmp eax, 0xfffffe98
jl 0x69ef30
mov edx, dword [0xaa6050]
add edx, 0x168
cmp eax, edx
jg 0x69ef30
mov eax, dword [esp + 0x54]
cmp eax, 0xffffff4c
jl 0x69ef30
mov ecx, dword [0xaa6054]
add ecx, 0xb4
cmp eax, ecx
jg 0x69ef30
mov edx, dword [esi]
lea eax, [esp + 0x50]
push 0x821950
push eax
mov ecx, esi
mov byte [esi + 0x85], 1
call dword [edx + 0x104]
mov eax, dword [esp + 0x104]
mov edx, dword [esi]
push 0
push eax
push 0x821950
mov ecx, esi
call dword [edx + 0xfc]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
mov ecx, dword [ebx + 0x83a898]
inc eax
cmp eax, ecx
mov dword [esp + 0x38], eax
jl 0x69ea69
mov eax, dword [esp + 0x2c]
cmp eax, 2
jne 0x69f0d1
mov edx, dword [0xa28728]
xor ecx, ecx
test edx, edx
mov dword [esp + 0x14], ecx
jle 0x69f0d1
mov edx, dword [0xa2871c]
mov ebx, dword [edx + ecx*4]
mov al, byte [ebx + 0x74]
test al, al
je 0x69f0b7
mov al, byte [ebx + 0x85]
test al, al
je 0x69f0b7
mov eax, dword [ebx]
lea ecx, [esp + 0xb0]
push ecx
mov ecx, ebx
call dword [eax + 0xa8]
mov ebp, dword [0x821c8c]
mov edi, eax
mov ecx, dword [edi + 4]
mov eax, dword [edi]
push ecx
push eax
lea ecx, [esp + 0x28]
call fcn.00697c30
mov edx, eax
mov eax, dword [edx]
mov ecx, dword [edx + 4]
cdq
and edx, 0xff
mov dword [esp + 0x78], ecx
mov ecx, dword [edi + 8]
add eax, edx
mov esi, eax
sar esi, 8
call fcn.00697e60
mov ecx, eax
mov eax, dword [esp + 0x78]
cdq
and edx, 0xff
mov dword [esp + 0x48], esi
add eax, edx
sar eax, 8
sub eax, ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [ebp + 0xb0]
mov ebp, dword [ebp + 0xb4]
sub esi, ecx
sub eax, ebp
cmp esi, 0xfffffe98
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], eax
jl 0x69f0af
mov edx, dword [0xaa6050]
add edx, 0x168
cmp esi, edx
jg 0x69f0af
cmp eax, 0xffffff4c
jl 0x69f0af
mov ecx, dword [0xaa6054]
add ecx, 0xb4
cmp eax, ecx
jg 0x69f0af
mov edi, dword [0x821958]
mov ecx, dword [0x821950]
mov edx, dword [0x821954]
mov dword [esp + 0x8c], edi
mov edi, dword [0x82195c]
cmp ecx, ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x90], edi
jle 0x69f088
sub ecx, ecx
add esi, ecx
mov dword [esp + 0x48], esi
mov ecx, dword [esp + 0x88]
cmp ecx, edx
jle 0x69f09b
sub edx, ecx
add eax, edx
mov dword [esp + 0x4c], eax
lea edx, [esp + 0x84]
lea eax, [esp + 0x48]
push edx
push eax
mov ecx, ebx
call fcn.0043b4e0
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
mov eax, dword [0xa28728]
inc ecx
cmp ecx, eax
mov dword [esp + 0x14], ecx
jl 0x69ef74
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 5
mov dword [esp + 0x2c], eax
jl 0x69ea49
mov ecx, 0x83a88c
mov dword [esp + 0x2c], ecx
mov edx, dword [ecx + 0xc]
xor eax, eax
test edx, edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x38], eax
jle 0x69f2d8
mov ecx, dword [ecx]
mov ebx, dword [ecx + eax*4]
mov al, byte [ebx + 0x85]
test al, al
je 0x69f2bf
test ebx, ebx
je 0x69f2bf
mov al, byte [ebx + 0x14]
mov dl, al
and dl, 1
mov byte [esp + 0x13], dl
je 0x69f2bf
shr al, 2
and al, 1
mov byte [esp + 0x13], al
je 0x69f19a
mov eax, dword [ebx]
lea ecx, [esp + 0xb0]
push 0
push ecx
mov ecx, ebx
call dword [eax + 0x4c]
mov eax, dword [0xb0de30]
test eax, eax
je 0x69f19a
mov al, byte [0xa28933]
test al, al
jne 0x69f19a
mov edx, dword [0xa255a0]
mov eax, dword [edx]
test ah, 0x10
je 0x69f19a
lea eax, [ebx + 0x88]
mov ecx, dword [ebx + 0x88]
mov dword [esp + 0x68], ecx
lea ecx, [esp + 0x68]
mov edx, dword [eax + 4]
push ecx
mov ecx, 0x81a800
mov dword [esp + 0x70], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x74], eax
call fcn.00565060
test al, al
jne 0x69f2bf
mov edx, dword [ebx]
lea eax, [esp + 0xa4]
push eax
mov ecx, ebx
call dword [edx + 0x48]
mov ebp, eax
mov dword [esp + 0x14], 0
mov esi, dword [ebp]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x78], ecx
mov edi, dword [esp + 0x78]
lea eax, [esi + esi*2]
mov ebp, dword [ebp + 8]
mov dword [esp + 0x48], ebp
lea eax, [eax + eax*4]
shl eax, 2
cdq
sub eax, edx
mov ecx, eax
lea eax, [esi + esi*2]
sar ecx, 1
lea eax, [eax + eax*4]
shl eax, 1
cdq
sub eax, edx
mov esi, eax
mov eax, edi
shl eax, 4
sub eax, edi
neg eax
shl eax, 2
cdq
sub eax, edx
sar eax, 1
add ecx, eax
lea eax, [edi + edi*2]
sar esi, 1
lea eax, [eax + eax*4]
mov dword [esp + 0x20], ecx
shl eax, 1
cdq
sub eax, edx
sar eax, 1
add esi, eax
mov eax, ecx
cdq
and edx, 0xff
add eax, edx
mov edi, eax
mov eax, esi
cdq
and edx, 0xff
add eax, edx
mov esi, eax
sar edi, 8
sar esi, 8
cmp ebp, 0x2d8
jl 0x69f23d
mov dword [esp + 0x14], 1
fild dword [esp + 0x48]
fmul qword [0xaa5f70]
fiadd dword [esp + 0x14]
fadd qword [0x785728]
call fcn.0076a6b0
sub esi, eax
mov eax, dword [0x821c8c]
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
mov ecx, dword [eax + 0xb0]
mov eax, dword [eax + 0xb4]
sub edi, ecx
sub esi, eax
cmp edi, 0xfffffe98
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], esi
jl 0x69f2bf
mov edx, dword [0xaa6050]
add edx, 0x168
cmp edi, edx
jg 0x69f2bf
cmp esi, 0xffffff4c
jl 0x69f2bf
mov eax, dword [0xaa6054]
add eax, 0xb4
cmp esi, eax
jg 0x69f2bf
mov edx, dword [ebx]
lea eax, [esp + 0x18]
push 0x821950
push eax
mov ecx, ebx
call dword [edx + pe_nt_image_headers32]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
jl 0x69f0fd
add ecx, 0x18
cmp ecx, 0x83a904
mov dword [esp + 0x2c], ecx
jl 0x69f0e8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf0
ret 4