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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x9c
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 0x10]
test eax, eax
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x74], edx
je 0x69b8f0
mov edx, dword [eax + 0x58]
test edx, edx
je 0x69b8f0
mov ecx, dword [eax + 0x54]
test ecx, ecx
mov dword [ebp - 0x90], ecx
je 0x69b8f0
mov edx, dword [ecx + 0x9c]
test edx, edx
je 0x69b357
test byte [edx + 4], 1
je 0x69b357
mov eax, dword [ecx + 4]
mov ebx, dword [ebp - 0x90]
mov ecx, dword [eax + 0x64]
mov eax, dword [ebx + 0x58]
test eax, eax
je 0x69b342
mov dword [esp + 4], eax
mov dword [esp], ecx
call dword [ecx + 8]
mov edx, dword [ebx + 0x9c]
mov edi, dword [ebp - 0x90]
and dword [edx + 4], 0xfffffffe
mov edx, edi
mov dword [edi + 0x58], 0
jmp 0x69b366
mov eax, dword [ebp - 0x90]
mov dword [eax + 0x58], 0
mov edx, eax
add edx, 0x18
xor eax, eax
cld
mov dword [ebp - 0x78], edx
mov edi, edx
mov ecx, 8
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x90]
add eax, 0x6c
mov dword [edx + 0x6c], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov byte [edx + 0x5e], 0
mov ecx, dword [ebp - 0x70]
mov dword [edx + 0x50], 0
mov dword [edx + 0x4c], 0
mov dword [edx + 0x54], 0
mov dword [edx + 0x64], 0
mov dword [edx + 0x68], 0
mov dword [edx + 0x80], 0
mov dword [edx + 0x84], 0
mov dword [edx + 0x88], 0
mov dword [edx + 0x8c], 0
mov dword [edx + 0x98], 0
mov dword [edx + 0x48], 0
mov dword [edx + 0x38], 0
mov dword [edx + 0x3c], 0
mov dword [edx + 0x90], 0
mov dword [edx + 0x94], 0
mov edx, dword [ecx + 0x60]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0xa8]
mov dword [ebp - 0x68], eax
mov eax, esi
or eax, 0x801
test esi, 0x400
cmovne esi, eax
test esi, 1
jne 0x69b794
mov eax, dword [ebp - 0x68]
test eax, eax
je 0x69b480
test si, 0x8002
jne 0x69b480
mov ecx, dword [edx]
mov eax, dword [ecx]
and eax, 0x300
cmp eax, 0x100
je 0x69b7b8
lea esi, [esi]
mov edx, dword [edx + 0x14]
mov dword [esp + 0xc], esi
mov ecx, dword [ebp - 0x74]
mov dword [esp + 8], ecx
mov ebx, dword [ebp - 0x70]
mov eax, dword [ebx + 0x58]
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x90]
mov dword [esp], edi
call dword [edx + 0x50]
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x69b786
mov ecx, dword [ebp - 0x90]
cmp dword [ecx + 0x48], 0x6f75746c
je 0x69b876
test esi, 0x10
jne 0x69b7a0
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebx + 0x28]
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x40], eax
test esi, 0x2000
jne 0x69b5a0
mov edi, dword [ebp - 0x70]
test byte [edi + 8], 1
je 0x69b5a0
mov ecx, dword [ebp - 0x90]
mov eax, dword [edi + 0x58]
mov ecx, dword [ecx + 0x38]
mov edx, dword [eax + 0x10]
mov dword [ebp - 0x10], eax
test ecx, ecx
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x14], ecx
je 0x69b56e
cmp edx, 0x40
je 0x69b56e
mov eax, ecx
mov edx, ecx
mov ebx, dword [ebp - 0x50]
sar eax, 0x1f
xor edx, eax
sub edx, eax
mov eax, dword [ebp - 0x50]
sar eax, 0x1f
xor ebx, eax
sub ebx, eax
cmp edx, 0xb504
jg 0x69ba8b
cmp ebx, 0xb504
jg 0x69ba8b
mov eax, ebx
imul eax, edx
lea edx, [eax + 0x5f]
add eax, 0x20
mov ecx, eax
cmovs ecx, edx
sar ecx, 6
mov eax, ecx
mov edx, dword [ebp - 0x50]
neg eax
xor edx, dword [ebp - 0x14]
cmovs ecx, eax
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x14]
mov edi, dword [ebp - 0x10]
mov eax, dword [ecx + 0x3c]
mov dword [ecx + 0x38], ebx
mov edi, dword [edi + 0x14]
test eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x40], edi
jne 0x69b989
mov ebx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x90]
mov dword [ecx + 0x3c], ebx
lea esi, [esi]
test esi, 0x800
jne 0x69b700
mov edi, dword [ebp - 0x70]
mov edi, dword [edi + 0x80]
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x64], edi
test eax, eax
je 0x69b700
mov edx, dword [ebp - 0x90]
mov eax, dword [edx + 4]
mov eax, dword [eax + 0x60]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 0xa4]
test ecx, ecx
je 0x69bb26
mov edx, dword [edx + 0x48]
cmp dword [ecx + 0x18], edx
je 0x69b60a
mov eax, dword [eax + 0x9c]
test eax, eax
jne 0x69b602
jmp 0x69bb77
mov eax, dword [eax + 4]
test eax, eax
je 0x69bb77
mov ecx, dword [eax + 8]
cmp dword [ecx + 0x18], edx
jne 0x69b5f7
mov edx, dword [ebp - 0x64]
mov eax, dword [ecx + 0x14]
add edx, 0x14
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x64]
add edx, 4
mov dword [esp + 8], edx
mov edi, dword [ebp - 0x90]
mov dword [esp], ecx
mov dword [esp + 4], edi
call dword [eax + 0x2c]
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x64]
mov ebx, dword [eax + 0x40]
mov edx, dword [ecx + 4]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x90]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x58], eax
mov edx, dword [edx + 0x44]
mov dword [ebp - 0x8c], edx
mov edx, dword [ecx + 8]
mov eax, dword [ebp - 0x8c]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x5c], eax
mov eax, ebx
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x64]
mov ebx, eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ecx + 0x10]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x90]
mov edx, dword [ebp - 0x5c]
add edx, dword [ebp - 0x58]
mov dword [ebp - 0x8c], eax
add eax, ebx
mov dword [ecx + 0x44], eax
mov dword [ecx + 0x40], edx
nop
mov edi, dword [ebp - 0x6c]
test edi, edi
jne 0x69b786
mov ebx, dword [ebp - 0x90]
mov eax, dword [ebx + 0x48]
cmp eax, 0x62697473
je 0x69b786
cmp eax, 0x636f6d70
je 0x69b786
test esi, 4
je 0x69b786
mov eax, esi
sar eax, 0x10
and eax, 0xf
jne 0x69b73f
mov eax, 2
and esi, 0x1000
cmove eax, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x90]
mov dword [ebp - 0x6c], 6
mov edx, dword [edi + 4]
test edx, edx
je 0x69b786
mov dword [ebp + 0x10], eax
mov dword [ebp + 0xc], edi
mov eax, dword [edx + 0x60]
mov eax, dword [eax + 4]
mov dword [ebp + 8], eax
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
jmp fcn.006919a0
mov eax, dword [ebp - 0x7c]
sub eax, 1
cmp eax, edx
je 0x69b905
mov dword [ebp - 0x6c], 6
mov eax, dword [ebp - 0x6c]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
or esi, 0xa
and esi, 0xfffffffb
jmp 0x69b45a
mov ecx, dword [ebp - 0x90]
mov eax, dword [ecx + 0x34]
mov dword [ecx + 0x40], 0
mov dword [ecx + 0x44], eax
jmp 0x69b4e1
mov edi, dword [ebp - 0x70]
mov ebx, dword [edi + 8]
test bh, 0x20
jne 0x69b480
mov eax, dword [edi + 0x80]
mov edi, dword [eax + 0xc]
mov dword [ebp - 0x88], eax
test edi, edi
jne 0x69b9df
mov eax, dword [eax + 4]
test eax, eax
je 0x69b480
test esi, 0x20
jne 0x69b814
test byte [ecx + 1], 4
je 0x69b814
mov eax, esi
sar eax, 0x10
and eax, 0xf
sub eax, 1
je 0x69b814
mov eax, dword [ebp - 0x88]
cmp byte [eax + 0x38], 0
je 0x69b480
and ebx, 2
je 0x69b825
test esi, 8
je 0x69bce1
mov ecx, dword [ebp - 0x68]
mov edx, dword [ebp - 0x88]
mov eax, dword [ecx]
mov ebx, dword [edx + 0x1c]
mov dword [edx + 0x1c], 0
mov edx, dword [eax + 0x14]
mov dword [esp + 0x10], esi
mov edi, dword [ebp - 0x74]
mov dword [esp + 0xc], edi
mov ecx, dword [ebp - 0x70]
mov eax, dword [ecx + 0x58]
mov dword [esp + 8], eax
mov edi, dword [ebp - 0x90]
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x68]
mov dword [esp], eax
call dword [edx + 0xc]
mov edx, dword [ebp - 0x88]
mov dword [edx + 0x1c], ebx
mov dword [ebp - 0x6c], eax
jmp 0x69b4c2
movsx ebx, word [ecx + 0x6e]
mov dword [ebp - 0x7c], ebx
movsx ebx, word [ecx + 0x6c]
mov edi, dword [ebp - 0x7c]
or edi, ebx
je 0x69b905
mov eax, dword [ebp - 0x7c]
test eax, eax
jle 0x69b77f
test ebx, ebx
jle 0x69b77f
mov eax, dword [ecx + 0x78]
movsx edx, word [eax]
mov dword [ebp - 0x54], eax
cmp edx, 0xffffffff
jle 0x69b77f
xor ecx, ecx
cmp edx, dword [ebp - 0x7c]
jl 0x69b8cb
jmp 0x69b77f
cmp eax, dword [ebp - 0x7c]
jge 0x69b77f
mov edx, eax
add ecx, 1
cmp ecx, ebx
je 0x69b771
mov edi, dword [ebp - 0x54]
movsx eax, word [edi + ecx*2]
cmp eax, edx
jg 0x69b8c0
mov dword [ebp - 0x6c], 6
jmp 0x69b786
mov dword [ebp - 0x6c], 0x23
mov eax, dword [ebp - 0x6c]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
test esi, 2
jne 0x69b4c2
test esi, 0x10
je 0x69bb2e
mov eax, dword [ebp - 0x90]
mov ebx, dword [ebp - 0x90]
mov edx, eax
and dword [eax + 0x20], 0xffffffc0
mov eax, dword [eax + 0x24]
mov ecx, dword [edx + 0x2c]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [edx + 0x24], eax
mov eax, dword [ebx + 0x1c]
mov edx, ecx
add eax, dword [ebx + 0x30]
and ecx, 0xffffffc0
add edx, dword [ebx + 0x18]
and dword [ebx + 0x30], 0xffffffc0
add eax, 0x3f
add edx, 0x3f
and eax, 0xffffffc0
sub eax, dword [ebx + 0x30]
and edx, 0xffffffc0
sub edx, ecx
mov dword [ebx + 0x18], edx
mov edx, ebx
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x1c], eax
mov eax, dword [edx + 0x28]
add eax, 0x20
and eax, 0xffffffc0
mov dword [edx + 0x28], eax
mov eax, dword [edx + 0x34]
add eax, 0x20
and eax, 0xffffffc0
mov dword [edx + 0x34], eax
jmp 0x69b4c2
cmp edi, 0x40
je 0x69b591
mov edx, dword [ebp - 0x18]
sar eax, 0x1f
mov ebx, edi
xor edx, eax
sub edx, eax
mov eax, edi
sar eax, 0x1f
xor ebx, eax
sub ebx, eax
cmp edx, 0xb504
jg 0x69b9ef
cmp ebx, 0xb504
jg 0x69b9ef
mov eax, ebx
imul eax, edx
lea edx, [eax + 0x5f]
add eax, 0x20
mov ecx, eax
cmovs ecx, edx
sar ecx, 6
mov eax, ecx
mov edx, dword [ebp - 0x40]
neg eax
xor edx, dword [ebp - 0x18]
cmovs ecx, eax
mov dword [ebp - 0x18], ecx
jmp 0x69b591
mov eax, dword [eax + 4]
test eax, eax
jne 0x69b480
jmp 0x69b7e9
movzx ecx, dx
shr edx, 0x10
mov dword [ebp - 0x38], ecx
movzx ecx, bx
mov dword [ebp - 0x3c], edx
mov edx, dword [ebp - 0x38]
shr ebx, 0x10
mov eax, dword [ebp - 0x3c]
imul edx, ebx
imul eax, ecx
lea edx, [eax + edx]
cmp edx, eax
mov eax, edx
sbb edi, edi
imul ecx, dword [ebp - 0x38]
and edi, 0x10000
imul ebx, dword [ebp - 0x3c]
shl eax, 0x10
shr edx, 0x10
lea ecx, [eax + ecx]
add edx, ebx
cmp ecx, eax
setb al
mov dword [ebp - 0x34], edi
movzx eax, al
lea edi, [ecx + 0x20]
add edx, eax
xor eax, eax
cmp ecx, edi
seta al
mov ecx, 0x7fffffff
add edx, eax
add edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edi
cmp edx, 0x3f
ja 0x69b9ca
xor ebx, ebx
mov ecx, 0x20
jmp 0x69ba68
shl dword [ebp - 0x1c], 1
mov eax, dword [ebp - 0x1c]
add edx, edx
add ebx, ebx
shr eax, 0x1f
or edx, eax
cmp edx, 0x3f
jbe 0x69ba7f
sub edx, 0x40
or ebx, 1
sub ecx, 1
jne 0x69ba65
mov ecx, ebx
jmp 0x69b9ca
movzx edi, dx
movzx ecx, bx
shr edx, 0x10
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x4c]
shr ebx, 0x10
mov edx, edi
imul edx, ebx
imul eax, ecx
lea edx, [eax + edx]
cmp edx, eax
sbb eax, eax
imul ecx, edi
and eax, 0x10000
imul ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x44], eax
mov eax, edx
shl eax, 0x10
lea ecx, [eax + ecx]
shr edx, 0x10
add edx, ebx
cmp ecx, eax
setb al
lea edi, [ecx + 0x20]
movzx eax, al
add edx, eax
xor eax, eax
cmp ecx, edi
mov ecx, 0x7fffffff
seta al
add edx, eax
add edx, dword [ebp - 0x44]
mov dword [ebp - 0x20], edi
cmp edx, 0x3f
ja 0x69b55e
xor ebx, ebx
mov ecx, 0x20
jmp 0x69bb03
shl dword [ebp - 0x20], 1
mov eax, dword [ebp - 0x20]
add edx, edx
add ebx, ebx
shr eax, 0x1f
or edx, eax
cmp edx, 0x3f
jbe 0x69bb1a
sub edx, 0x40
or ebx, 1
sub ecx, 1
jne 0x69bb00
mov ecx, ebx
jmp 0x69b55e
mov edx, dword [edx + 0x48]
jmp 0x69b5e8
mov edi, dword [ebp - 0x90]
mov eax, dword [edi + 0x20]
mov ecx, dword [edi + 0x24]
sub ecx, dword [edi + 0x1c]
and dword [edi + 0x2c], 0xffffffc0
mov edx, eax
and eax, 0xffffffc0
add edx, dword [edi + 0x18]
and ecx, 0xffffffc0
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x24]
and dword [edi + 0x30], 0xffffffc0
add edx, 0x3f
and edx, 0xffffffc0
sub edx, dword [edi + 0x20]
add eax, 0x3f
and eax, 0xffffffc0
mov dword [edi + 0x24], eax
sub eax, ecx
mov dword [edi + 0x18], edx
mov edx, edi
mov dword [edi + 0x1c], eax
jmp 0x69b96c
cmp edx, 0x6f75746c
jne 0x69b634
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x90]
mov eax, dword [eax + 0x70]
movzx edx, word [edx + 0x6e]
mov dword [ebp - 0x84], eax
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x2c], eax
movsx eax, dx
mov word [ebp - 0x7e], dx
lea ecx, [ecx + eax*8]
cmp dword [ebp - 0x84], ecx
mov dword [ebp - 0x30], ecx
jae 0x69bc96
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x69bc82
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x64]
mov ebx, dword [edi]
mov edx, dword [eax + 4]
mov eax, ebx
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x8c], edx
mov eax, dword [ebp - 0x8c]
mov edx, dword [ecx + 8]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x28], eax
mov eax, ebx
mov edx, dword [ecx + 0xc]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov ecx, dword [ebp - 0x64]
mov ebx, eax
mov eax, dword [ebp - 0x8c]
mov edx, dword [ecx + 0x10]
imul edx
mov ecx, edx
sar ecx, 0x1f
add ecx, 0x8000
add eax, ecx
adc edx, 0
shr eax, 0x10
shl edx, 0x10
add eax, edx
mov edx, dword [ebp - 0x28]
add edx, dword [ebp - 0x24]
mov dword [ebp - 0x8c], eax
add eax, ebx
mov dword [edi + 4], eax
mov dword [edi], edx
add dword [ebp - 0x2c], 8
mov edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], edx
ja 0x69bbbe
movsx eax, word [ebp - 0x7e]
mov ecx, dword [ebp - 0x64]
test eax, eax
mov edi, dword [ebp - 0x64]
mov ecx, dword [ecx + 0x18]
mov ebx, dword [edi + 0x14]
mov dword [ebp - 0x60], ecx
jle 0x69b634
mov eax, dword [ebp - 0x90]
xor ecx, ecx
mov edx, dword [ebp - 0x84]
mov edi, dword [ebp - 0x60]
movsx eax, word [eax + 0x6e]
add edx, 8
mov dword [ebp - 0x7c], eax
add ecx, 1
add dword [edx - 8], ebx
movzx eax, cx
add dword [edx - 4], edi
add edx, 8
cmp eax, dword [ebp - 0x7c]
jl 0x69bcc8
jmp 0x69b634
mov eax, dword [edx + 0x14]
mov edx, esi
or dh, 0x40
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x74]
mov dword [esp + 8], edx
mov ecx, dword [ebp - 0x70]
mov edx, dword [ecx + 0x58]
mov dword [esp + 4], edx
mov ebx, dword [ebp - 0x90]
mov dword [esp], ebx
call dword [eax + 0x50]
test eax, eax
mov dword [ebp - 0x6c], eax
jne 0x69bd32
cmp dword [ebx + 0x48], 0x62697473
je 0x69b4c2
mov edi, dword [ebp - 0x70]
mov edi, dword [edi + 0x80]
mov dword [ebp - 0x88], edi
jmp 0x69b825
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 0x80]
mov dword [ebp - 0x88], eax
jmp 0x69b825