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

Disassembly:
push edi
push esi
push ebp
push ebx
mov ebp, dword [esp + 0x14]
sub esp, 0x24
mov dword [esp + 0x10], 0
mov eax, dword [ebp + 0x37e0]
lea esi, [ebp + 0x37e8]
test eax, eax
mov dl, 0
mov byte [esp + 0x18], dl
je 0x6820a0
mov edx, dword [ebp + 0x74]
cmp edx, 1
je 0x6820a0
cmp edx, 1
je 0x682002
test eax, eax
je 0x681640
mov al, 1
mov byte [esp + 0x18], al
mov eax, dword [ebp]
cmp eax, 6
je 0x68168e
cmp eax, 7
je 0x68168e
cmp eax, 0xe
je 0x68168e
cmp eax, 0xf
je 0x68168e
cmp eax, 0x11
je 0x68168e
cmp eax, 0x10
je 0x68168e
cmp eax, 0x13
je 0x68168e
cmp eax, 0x12
je 0x68168e
mov eax, dword [ebp + 8]
test eax, eax
jne 0x68168e
mov eax, dword [ebp + 0x10]
test eax, eax
jne 0x68168e
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x68168e
mov eax, dword [ebp + 4]
test eax, eax
jne 0x68168e
mov dword [esi + 0x1c], 0
mov eax, dword [ebp + 0x37dc]
test eax, eax
je 0x681feb
mov eax, dword [ebp]
cmp eax, 1
je 0x6816a8
test eax, eax
jne 0x6816d7
lea eax, [esp + 0x10]
mov dword [esp], esi
mov dword [esp + 4], eax
call fcn.006889a4
mov ebx, eax
test ebx, ebx
jne 0x681d9d
mov eax, dword [esp + 0x10]
cmp eax, 0xd8
je 0x6816eb
mov ebx, 0xfffffff3
jmp 0x681d9d
cmp eax, 5
je 0x6816a8
cmp eax, 4
je 0x6816a8
cmp eax, 0x15
je 0x6816a8
cmp eax, 0x14
je 0x6816a8
mov eax, dword [ebp + 0x4de0]
test eax, eax
jne 0x681703
xor eax, eax
mov dword [ebp + 0x37d4], eax
mov dword [ebp + 0x37d8], eax
mov edi, dword [ebp + 0x37e0]
test edi, edi
je 0x681fe4
mov eax, dword [ebp + 0x74]
cmp eax, 1
jne 0x681726
je 0x681da7
mov ebp, esi
jmp 0x681d76
mov dword [esp + 0x1c], esi
test edi, edi
je 0x681744
mov al, byte [esp + 0x18]
test al, al
je 0x681744
xor al, al
mov byte [esp + 0x18], al
jmp 0x6818bc
mov dword [esp], 0x38
call fcn.0069b413
mov edi, eax
test edi, edi
je 0x681fda
xor edx, edx
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x30], edx
mov dword [edi + 0x2c], edx
mov dword [edi + 0x28], edx
mov dword [edi + 0x24], edx
mov dword [edi + 0x20], edx
mov dword [edi + 0x1c], edx
mov eax, dword [ecx]
cmp eax, 1
je 0x681fd1
test eax, eax
je 0x681fd1
cmp eax, 5
je 0x681fd1
cmp eax, 4
je 0x681fd1
cmp eax, 0x15
je 0x681fd1
cmp eax, 0x14
jne 0x6817bf
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x1c]
mov dword [esp], edi
add eax, 0xfffffffe
mov dword [esi + 0x1c], eax
call fcn.0069b421
jmp 0x681d9b
mov eax, dword [esp + 0x1c]
mov edx, ecx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00681544
mov ebx, eax
test ebx, ebx
jne 0x681fc4
mov eax, dword [esp + 0x38]
mov edx, dword [edi]
mov ecx, dword [eax + 0x37d0]
mov dword [edi + 0x18], ecx
cmp edx, dword [eax + 0x37c0]
jge 0x681814
mov eax, dword [eax + 0x4de0]
test eax, eax
jne 0x681814
mov eax, dword [esp + 0x38]
mov dword [eax + 0x74], 1
jmp 0x68181f
mov eax, dword [esp + 0x38]
mov dword [eax + 0x74], 0
mov dword [esp], eax
call fcn.006948b4
mov eax, dword [edi + 8]
test eax, eax
je 0x681834
mov edx, dword [edi + 0x14]
jmp 0x681869
mov edx, dword [edi + 0xc]
cmp edx, 0x3f
je 0x681844
mov edx, dword [edi + 0x14]
jmp 0x681869
mov edx, dword [edi + 0x10]
test edx, edx
je 0x681854
mov edx, dword [edi + 0x14]
jmp 0x681869
mov edx, dword [edi + 0x14]
test edx, edx
jne 0x681869
mov ecx, dword [esp + 0x38]
mov ecx, dword [ecx + 0x4de0]
test ecx, ecx
je 0x6818bc
test eax, eax
jne 0x681894
mov eax, dword [edi + 0xc]
test eax, eax
jne 0x681894
test edx, edx
jne 0x6818a2
mov eax, dword [esp + 0x38]
mov edx, dword [edi]
add dword [eax + 0x37d4], edx
jmp 0x6818a2
test edx, edx
jne 0x6818a2
mov eax, dword [esp + 0x38]
inc dword [eax + 0x37d8]
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x4de0]
inc edx
mov dword [eax + 0x4de0], edx
cmp edx, 1
je 0x681dc1
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x74]
cmp eax, 1
je 0x681fa1
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x4de8]
mov dword [eax + 0x37e0], edi
cmp edx, 1
jne 0x6819ae
xor ecx, ecx
mov esi, dword [eax + 0x37c0]
xor ebx, ebx
test esi, esi
jle 0x681917
mov ebp, eax
mov edx, ecx
shl edx, 4
mov eax, dword [ebp + 0x37cc]
mov ebp, eax
mov esi, esi
inc ecx
mov eax, dword [edx + ebp + 4]
imul eax, dword [edx + ebp + 8]
add edx, 0x10
add ebx, eax
cmp ecx, esi
jl 0x681904
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x78]
mov eax, dword [eax + 0x4dec]
shl edx, 6
imul edx, ebx
shl ebx, 7
add ebx, edx
test eax, eax
jne 0x6819ae
mov dword [esp], 0x14
call fcn.0069b413
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [edx + 0x4dec], eax
je 0x681e72
lea eax, [ebx + ebx]
add eax, eax
add eax, eax
mov dword [esp], eax
call fcn.0069b413
mov ecx, dword [esp + 0x38]
mov ebp, dword [ecx + 0x4dec]
mov dword [ebp], eax
mov edx, dword [ecx + 0x4dec]
mov eax, dword [edx]
test eax, eax
je 0x681e54
lea eax, [eax + ebx*2]
mov dword [edx + 4], eax
mov ebp, dword [ecx + 0x4dec]
mov esi, dword [ebp + 4]
lea esi, [esi + ebx*2]
mov dword [ebp + 8], esi
mov ebp, dword [ecx + 0x4dec]
mov esi, dword [ebp + 8]
lea esi, [esi + ebx*2]
mov dword [ebp + 0xc], esi
mov ecx, dword [ecx + 0x4dec]
mov dword [ecx + 0x10], 0
lea eax, [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], edx
call fcn.00691b24
mov ebx, eax
cmp ebx, 1
je 0x681f98
cmp ebx, 2
je 0x681f14
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x4de0]
test eax, eax
jne 0x6819f9
mov eax, dword [esp + 0x1c]
mov edi, dword [edi]
add dword [eax + 0x38], edi
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x37e0]
test eax, eax
je 0x681a0b
test ebx, ebx
je 0x681a24
test ebx, ebx
jl 0x681d9d
jmp 0x681a5c
mov eax, dword [eax + 0x34]
mov dword [esp], eax
call fcn.0069b421
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x37e0]
mov dword [edx + 0x34], 0
mov eax, dword [eax + 0x37e0]
mov dword [esp], eax
call fcn.0069b421
mov eax, dword [esp + 0x38]
mov dword [eax + 0x37e0], 0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x681a74
mov ebp, dword [esp + 0x1c]
jmp 0x681d76
mov ebp, dword [esp + 0x1c]
lea esi, [esi]
lea edi, [edi]
cmp eax, 0x100
ja 0x681d54
mov eax, dword [eax*4 + 0x600571a0]
jmp eax
mov dword [esp], ebp
call fcn.00688a34
mov ebx, eax
test ebx, ebx
jne 0x681d9d
jmp 0x681d76
lea eax, [esp + 0x10]
mov dword [esp], ebp
mov dword [esp + 4], eax
call fcn.006889a4
mov ebx, eax
test ebx, ebx
jne 0x681d9d
mov eax, dword [esp + 0x10]
cmp eax, 0x100
jne 0x681a84
xor ebx, ebx
add esp, 0x24
mov eax, ebx
pop ebx
pop ebp
pop esi
pop edi
ret
mov eax, dword [edi + 0x1c]
test eax, eax
jne 0x681726
mov eax, dword [edi + 0x20]
test eax, eax
jne 0x681726
mov ebp, esi
jmp 0x681d76
xor ecx, ecx
mov esi, dword [eax + 0x37c0]
xor ebx, ebx
test esi, esi
jle 0x681df7
mov ebp, eax
mov edx, ecx
shl edx, 4
mov eax, dword [ebp + 0x37cc]
mov ebp, eax
lea esi, [esi]
inc ecx
mov eax, dword [edx + ebp + 4]
imul eax, dword [edx + ebp + 8]
add edx, 0x10
add ebx, eax
cmp ecx, esi
jl 0x681de4
mov eax, dword [esp + 0x38]
mov edx, dword [eax + 0x78]
shl edx, 6
imul edx, dword [eax + 0x7c]
imul edx, ebx
add edx, edx
mov dword [esp], edx
call fcn.0069b413
mov edx, dword [esp + 0x38]
test eax, eax
mov dword [edx + 0x4de4], eax
jne 0x6818bc
mov eax, dword [edi + 0x34]
mov ebp, edx
mov dword [esp], eax
call fcn.0069b421
mov dword [edi + 0x34], 0
mov dword [esp], edi
call fcn.0069b421
mov dword [ebp + 0x37e0], 0
mov ebx, 0xfffffffb
jmp 0x681d9d
mov ebp, ecx
mov dword [esp], edx
call fcn.0069b421
mov dword [ebp + 0x4dec], 0
mov ebx, 0xfffffffb
jmp 0x681d9d
mov ebx, 0xfffffffb
jmp 0x681d9d
mov ebp, dword [esp + 0x38]
mov eax, dword [ebp + 0x4de0]
test eax, eax
je 0x681f41
mov eax, dword [ebp + 0x1c]
test eax, eax
jne 0x681f41
inc dword [ebp + 0x37d8]
mov dword [ebp + 0x37e0], edi
mov dword [ebp + 0x1c], 0
jmp 0x681d9d
mov eax, dword [ebp + 0x74]
cmp eax, 1
je 0x681f5b
mov dword [ebp + 0x37e0], edi
mov dword [ebp + 0x1c], 0
jmp 0x681d9d
cmp ebx, 2
jne 0x681f49
mov eax, dword [ebp + 0x68]
test eax, eax
je 0x681f6f
mov dword [esp], ebp
call fcn.00657ba4
mov eax, dword [edi + 0x34]
mov dword [esp], eax
call fcn.0069b421
mov dword [edi + 0x34], 0
mov dword [esp], edi
call fcn.0069b421
mov dword [ebp + 0x37e0], 0
jmp 0x681d9d
mov ebp, dword [esp + 0x38]
jmp 0x681f18
mov eax, dword [esp + 0x38]
mov eax, dword [eax + 0x4de0]
test eax, eax
jne 0x6818cc
mov eax, dword [esp + 0x38]
mov edx, dword [edi]
add dword [eax + 0x37d8], edx
jmp 0x6818cc
mov dword [esp], edi
call fcn.0069b421
jmp 0x681d9d
mov esi, dword [esp + 0x1c]
jmp 0x6817a9
mov ebx, 0xfffffffb
jmp 0x681d9d
mov ebp, esi
jmp 0x681d76
mov dword [esp], ebp
call fcn.006948b4
mov ebx, eax
test ebx, ebx
jne 0x681d9d
jmp 0x68169c
test eax, eax
je 0x68201c
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x681636
mov edx, dword [eax + 0x20]
test edx, edx
jne 0x681636
xor edx, edx
mov dword [esi + 4], edx
mov dword [esi], edx
mov eax, dword [ebp]
cmp eax, 2
je 0x68205d
cmp eax, 6
je 0x68205d
cmp eax, 0xe
je 0x68205d
cmp eax, 0x12
je 0x68205d
cmp eax, 0x10
je 0x68205d
mov edx, dword [esi + 0x20]
mov ecx, dword [ebp + 0x44]
mov dword [esi + 0x24], edx
mov dword [esi + 0x10], ecx
mov dword [esi + 0x1c], 0
mov eax, dword [ebp + 0x37e0]
jmp 0x681636
xor eax, eax
mov edx, dword [esi + 0x3c]
mov dword [esp + 8], eax
mov dword [esp + 4], eax
mov dword [esi + 0x1c], eax
mov dword [esp], edx
call fcn.00684804
test eax, eax
jne 0x682083
mov ebx, 0xffffffe9
jmp 0x681d9d
mov dword [esp], esi
call fcn.006946e4
mov ebx, eax
test ebx, ebx
jne 0x681d9d
mov eax, dword [ebp + 0x37e0]
jmp 0x681636
test eax, eax
je 0x6820d8
mov edx, dword [eax + 0x1c]
test edx, edx
jne 0x6820d0
mov edx, dword [eax + 0x20]
test edx, edx
je 0x6820ba
mov edx, dword [ebp + 0x74]
jmp 0x68162d
mov dword [esp], esi
call fcn.00694694
mov eax, dword [ebp + 0x37e0]
mov edx, dword [ebp + 0x74]
jmp 0x68162d
mov edx, dword [ebp + 0x74]
jmp 0x68162d
mov dword [esp], esi
call fcn.00694694
mov eax, dword [ebp + 0x37e0]
mov edx, dword [ebp + 0x74]
jmp 0x68162d