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

Disassembly:
push ebp
push edi
mov edi, edx
push esi
push ebx
sub esp, 0x15c
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x170]
mov esi, dword [esp + 0x17c]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x178]
mov ebx, dword [esi + 4]
mov ebp, dword [esp + 0x174]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x180]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x184]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x188]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x190]
mov dword [esp + 0x58], eax
test ebx, ebx
je 0x6f99d1
mov ecx, dword [esi + 0x10]
test ecx, ecx
jne 0x6f9f50
mov edx, dword [esi + 0x28]
mov eax, 1
test edx, edx
je 0x6f9b72
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x24]
cmp dword [ebp + 0x14], 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jg 0x6f9b80
mov ebx, dword [esp + 0x34]
xor edx, edx
mov esi, dword [edi + 0x30]
cmp dword [esp + 0x30], esi
mov ecx, dword [edi + 0xc]
sbb ebx, edx
jae 0x6f9fe0
mov eax, ecx
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x88], str..debug_ranges
mov dword [esp + 0xa4], 0
lea edi, [eax + ecx]
sub esi, ecx
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x90], edi
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x94], esi
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0xa0], eax
jmp 0x6f9aac
cmp eax, 1
je 0x6fa080
cmp eax, 2
jne 0x6fa02c
mov eax, esi
xor eax, 0xffff
or eax, edi
sete al
movzx eax, al
test eax, eax
je 0x6fa02c
mov dword [esp + 0x44], ecx
mov edi, dword [esp + 0xa4]
test edi, edi
jne 0x6f9b70
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x88]
call fcn.006f97a0
mov edi, edx
mov edx, dword [ebp + 0x1c]
mov esi, eax
lea eax, [esp + 0x88]
call fcn.006f97a0
mov ebx, edx
mov edx, edi
mov ecx, eax
mov eax, esi
or edx, ebx
or eax, ecx
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x30], eax
or eax, edx
je 0x6fa0b0
mov eax, dword [ebp + 0x1c]
cmp eax, 4
je 0x6fa098
jle 0x6f9a70
cmp eax, 8
jne 0x6fa02c
mov eax, esi
and eax, edi
cmp eax, 0xffffffff
sete al
movzx eax, al
jmp 0x6f9a91
mov eax, dword [esp + 0x70]
sub eax, dword [esp + 0x6c]
lea ebx, [esp + 0x88]
mov dword [esp + 0xc], str.unrecognized_DW_RLE_value
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 8], str._s_in__s_at__d
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0xc8
mov dword [esp], ebx
call fcn.006f8e60
mov eax, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0xffffffff
mov dword [esp], eax
call dword [esp + 0x7c]
xor eax, eax
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x44]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x44], eax
test eax, eax
jne 0x6f9c30
mov esi, dword [edi + 0x44]
mov ecx, dword [esp + 0x30]
xor edx, edx
mov ebx, dword [esp + 0x34]
cmp ecx, esi
sbb ebx, edx
jae 0x6fa008
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x68], str..debug_rnglists
mov dword [esp + 0x84], 0
mov ebx, dword [esp + 0x44]
mov dword [esp + 0x6c], eax
add eax, ecx
mov dword [esp + 0x70], eax
mov eax, esi
sub eax, ecx
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x80], eax
test ebx, ebx
jne 0x6fa0c8
lea esi, [esi]
lea eax, [esp + 0x68]
call fcn.006f93b0
test al, al
je 0x6fa20a
cmp al, 7
ja case.0x6f9c24.0
movzx eax, al
jmp dword [eax*4 + 0x7bd2e4]
cmp dword [ebp + 0x18], 1
mov edx, dword [esp + 0x30]
sbb eax, eax
mov ebx, dword [esp + 0x34]
and eax, 0xfffffffc
add eax, 8
imul ebx, eax
mul edx
add edx, ebx
add eax, dword [ebp + 0x38]
adc edx, dword [ebp + 0x3c]
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], edx
jmp 0x6f9b97
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x68]
call fcn.006f97a0
mov ebx, eax
lea eax, [esp + 0x68]
call fcn.006f9020
mov ecx, dword [esp + 0x4c]
add ebx, ecx
mov ecx, dword [esp + 0x58]
add eax, ebx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov dword [esp + 8], ebx
mov eax, dword [esp + 0x54]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call eax
test eax, eax
jne 0x6f9c08
xor eax, eax
jmp 0x6f9b72
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x68]
call fcn.006f97a0
mov edx, dword [ebp + 0x1c]
mov ebx, eax
lea eax, [esp + 0x68]
call fcn.006f97a0
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x4c]
add eax, ecx
add ebx, ecx
mov dword [esp + 0xc], eax
jmp 0x6f9c9b
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x68]
call fcn.006f97a0
mov dword [esp + 0x60], eax
jmp 0x6f9c08
lea eax, [esp + 0x68]
call fcn.006f9020
mov ebx, eax
lea eax, [esp + 0x68]
call fcn.006f9020
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
add edx, dword [esp + 0x60]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
add eax, edx
add edx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov dword [esp + 0x10], ecx
jmp 0x6f9c9f
lea eax, [esp + 0x68]
lea esi, [esp + 0x88]
call fcn.006f9020
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x14]
call fcn.006f9880
test eax, eax
je 0x6f9b70
lea eax, [esp + 0x68]
call fcn.006f9020
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
add edx, dword [esp + 0x88]
mov dword [esp + 0x10], esi
add eax, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 8], edx
jmp 0x6f9c9f
lea eax, [esp + 0x68]
lea esi, [esp + 0x64]
call fcn.006f9020
mov dword [esp + 0x20], esi
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x10], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x14]
call fcn.006f9880
test eax, eax
je 0x6f9b70
lea ecx, [esp + 0x68]
lea esi, [esp + 0x88]
mov eax, ecx
call fcn.006f9020
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 8], ecx
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x14]
call fcn.006f9880
test eax, eax
je 0x6f9b70
mov eax, dword [esp + 0x58]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x10], esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x88]
add eax, ebx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x64]
add eax, ebx
mov dword [esp + 8], eax
jmp 0x6f9c9f
lea eax, [esp + 0x68]
call fcn.006f9020
mov ecx, eax
lea eax, [esp + 0x60]
mov ebx, edx
mov edx, dword [edi + 0x38]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov ebx, dword [ebp + 0x30]
mov esi, dword [ebp + 0x34]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov eax, dword [edi + 0x14]
call fcn.006f9880
test eax, eax
jne 0x6f9c08
xor eax, eax
jmp 0x6f9b72
mov eax, dword [esi]
mov edx, dword [esi + 8]
mov dword [esp + 0x68], eax
test edx, edx
jne 0x6fa120
mov eax, dword [esi + 0xc]
mov ebx, dword [esi + 0x18]
mov dword [esp + 0x88], eax
test ebx, ebx
jne 0x6fa180
mov ecx, dword [esi + 0x14]
mov edx, dword [esp + 0x68]
test ecx, ecx
je 0x6f9f83
add eax, edx
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x180], ebx
mov ebx, dword [esp + 0x4c]
mov dword [esp + 0x188], edi
mov edi, dword [esp + 0x40]
add eax, ebx
add edx, ebx
mov dword [esp + 0x17c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x184], edi
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x178], edx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x50]
add esp, 0x15c
pop ebx
pop esi
pop edi
pop ebp
jmp eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0
mov dword [esp + 4], str.ranges_offset_out_of_range
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
xor eax, eax
jmp 0x6f9b72
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0
mov dword [esp + 4], str.rnglists_offset_out_of_range
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
xor eax, eax
jmp 0x6f9b72
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
add eax, edx
mov edx, dword [esp + 0x58]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x10], edx
lea edx, [eax + ecx]
add eax, esi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xc], edx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call eax
test eax, eax
jne 0x6f9a9d
xor eax, eax
jmp 0x6f9b72
mov eax, esi
xor al, 0xff
or eax, edi
sete al
movzx eax, al
jmp 0x6f9a91
mov eax, esi
not eax
or eax, edi
sete al
movzx eax, al
jmp 0x6f9a91
mov esi, dword [esp + 0xa4]
xor eax, eax
test esi, esi
sete al
jmp 0x6f9b72
mov ecx, dword [ebp + 0x18]
lea eax, [esp + 0x68]
test ecx, ecx
jne 0x6fa110
call fcn.006f9610
xor ebx, ebx
mov ecx, eax
mov esi, dword [edi + 0x44]
add ecx, dword [ebp + 0x38]
adc ebx, dword [ebp + 0x3c]
xor edx, edx
mov dword [esp + 0x30], esi
cmp ecx, esi
mov esi, ebx
sbb esi, edx
jae 0x6fa1e6
mov eax, dword [edi + 0x20]
mov esi, dword [esp + 0x30]
add eax, ecx
sub esi, ecx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], esi
jmp 0x6f9c08
call fcn.006f96d0
mov ecx, eax
mov ebx, edx
jmp 0x6fa0dc
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], ebx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov dword [esp], eax
mov dword [esp + 4], edx
mov edx, dword [edi + 0x38]
mov eax, dword [edi + 0x14]
call fcn.006f9880
test eax, eax
jne 0x6f9f61
xor eax, eax
jmp 0x6f9b72
mov ecx, dword [edi + 0x38]
mov ebx, dword [edi + 0x14]
mov dword [esp + 0x10], eax
lea edx, [esp + 0x88]
mov edi, dword [esp + 0x40]
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x1c], edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x18], edi
mov eax, dword [ebp + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x34]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 4], edx
mov edx, ecx
call fcn.006f9880
test eax, eax
je 0x6f9b70
mov eax, dword [esp + 0x88]
jmp 0x6f9f76
mov eax, dword [esp + 0x40]
mov dword [esp + 8], 0
mov dword [esp + 4], str.rnglists_index_offset_out_of_range
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
call eax
xor eax, eax
jmp 0x6f9b72
mov edx, dword [esp + 0x84]
xor eax, eax
test edx, edx
sete al
jmp 0x6f9b72