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

Disassembly:
sub esp, 0x4c
push ebx
push ebp
push esi
mov esi, dword [esp + 0x5c]
mov eax, dword [esi]
xor ebx, ebx
push edi
mov edi, dword [esi + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x2c], edi
cmp edi, ebx
jne 0x69198d
call fcn.00671538
mov edi, eax
mov dword [esi + 0xc], eax
mov dword [esp + 0x2c], edi
cmp edi, ebx
je 0x69198d
push 0x84
call fcn.00671768
add esp, 4
cmp dword [esp + 0x7c], ebx
jge 0x6919db
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov eax, dword [esp + 0x70]
movzx ebp, byte [eax + 0x18]
jg 0x6919b3
call fcn.00671688
test eax, eax
je 0x6919b3
mov esi, 1
jmp 0x6919d7
mov edx, dword [edi + 0x14]
inc dword [edi + 0xc]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov byte [eax], 0x6e
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x70]
cmp dword [eax + 0x14], ebx
mov dword [esp + 0x18], ebx
jle 0x691e77
mov esi, dword [esp + 0x14]
test esi, esi
je 0x691a47
cmp byte [esi + 0x1e], 0
je 0x691a01
xor ebp, ebp
jmp 0x691b31
cmp byte [esi + 0xe2], 0
je 0x691a47
mov ecx, 0x31
cmp cx, word [esi + 0xe0]
ja 0x691a47
mov ebp, dword [esi + 0xec]
test ebp, ebp
je 0x691a47
mov edx, dword [ebp]
inc dword [esi + 0xe4]
mov eax, dword [esi + 0xe4]
cmp eax, dword [esi + 0xe8]
mov dword [esi + 0xec], edx
jle 0x691aa2
mov dword [esi + 0xe8], eax
jmp 0x691aa2
cmp dword [0x100d93d0], 0
je 0x691a83
mov eax, dword [0x100db020]
test eax, eax
je 0x691a63
push eax
call dword [0x100d9418]
add esp, 4
lea ebx, [esp + 0x20]
mov eax, 0x31
call fcn.0065b108
mov eax, dword [0x100db020]
test eax, eax
je 0x691a92
push eax
call dword [0x100d9420]
jmp 0x691a8f
push 0x31
call dword [0x100d93e8]
mov dword [esp + 0x24], eax
add esp, 4
mov ebp, dword [esp + 0x20]
test ebp, ebp
jne 0x691aaa
test esi, esi
je 0x691aa2
mov byte [esi + 0x1e], 1
test ebp, ebp
je 0x691b31
push 0x31
push 0
push ebp
call fcn.006d1728
add esp, 0xc
or eax, 0xffffffff
push 0
mov word [ebp + 0x1e], ax
lea eax, [ebp + 0x30]
push 0
push eax
mov byte [ebp], 0x84
mov dword [ebp + 4], eax
call fcn.006d39d8
mov ecx, dword [ebp + 4]
mov byte [ecx], 0
mov ecx, dword [esp + 0x78]
add esp, 0xc
mov dword [ebp + 0x2c], 1
test ecx, ecx
je 0x691b26
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0x10]
mov eax, dword [esp + 0x18]
mov eax, dword [edx + eax*4]
mov ecx, dword [ecx + 0x10]
lea edx, [eax + eax*2]
lea ecx, [ecx + edx*8]
mov edx, dword [esp + 0x78]
lea eax, [eax + edx + 1]
mov dword [ebp + 0x18], eax
mov dl, byte [ecx + 0x16]
mov eax, dword [esp + 0x60]
mov byte [ebp + 1], dl
push eax
mov eax, dword [ecx + 0x10]
call fcn.00688f28
add esp, 4
mov dword [ebp + 0x14], eax
jmp 0x691b31
mov ecx, dword [esp + 0x78]
mov dword [ebp + 0x18], ecx
mov byte [ebp + 1], 0x64
mov eax, dword [esp + 0x74]
test eax, eax
je 0x691b42
mov edx, dword [esp + 0x18]
mov eax, dword [eax + edx*4]
jmp 0x691b49
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx]
mov ecx, dword [edx + 0x10]
lea eax, [eax + eax*2]
mov ecx, dword [ecx + eax*8]
mov dword [esp + 0x34], ecx
test ecx, ecx
je 0x691b7d
cmp byte [ecx], 0
mov eax, ecx
je 0x691b6e
nop
inc eax
cmp byte [eax], 0
jne 0x691b68
sub eax, ecx
and eax, 0x3fffffff
mov ebx, eax
mov dword [esp + 0x24], eax
jmp 0x691b83
xor ebx, ebx
mov dword [esp + 0x24], ebx
lea edi, [ebx + 0x31]
test esi, esi
je 0x691bd9
cmp byte [esi + 0x1e], 0
je 0x691b97
xor esi, esi
jmp 0x691ca2
cmp byte [esi + 0xe2], 0
je 0x691bd9
movzx edx, word [esi + 0xe0]
cmp edi, edx
jg 0x691bd9
mov eax, dword [esi + 0xec]
test eax, eax
je 0x691bd9
mov ecx, dword [eax]
inc dword [esi + 0xe4]
mov dword [esi + 0xec], ecx
mov ecx, dword [esi + 0xe4]
cmp ecx, dword [esi + 0xe8]
jle 0x691c36
mov dword [esi + 0xe8], ecx
jmp 0x691c36
lea edx, [edi - 1]
cmp edx, 0x7ffffefe
ja 0x691c77
cmp dword [0x100d93d0], 0
je 0x691c67
mov eax, dword [0x100db020]
test eax, eax
je 0x691c04
push eax
call dword [0x100d9418]
add esp, 4
lea ebx, [esp + 0x1c]
mov eax, edi
call fcn.0065b108
mov eax, dword [0x100db020]
test eax, eax
je 0x691c22
push eax
call dword [0x100d9420]
add esp, 4
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x691c32
test esi, esi
je 0x691c32
mov byte [esi + 0x1e], 1
mov ebx, dword [esp + 0x24]
mov esi, eax
test esi, esi
je 0x691ca2
push edi
push 0
push esi
call fcn.006d1728
or eax, 0xffffffff
mov word [esi + 0x1e], ax
lea eax, [ebx + 1]
add esp, 0xc
mov byte [esi], 0x1a
test eax, eax
jne 0x691c7f
mov ecx, 0x400
or word [esi + 2], cx
mov dword [esi + 4], eax
jmp 0x691c9b
push edi
call dword [0x100d93e8]
add esp, 4
mov dword [esp + 0x1c], eax
jmp 0x691c22
xor eax, eax
mov dword [esp + 0x1c], eax
jmp 0x691c2a
mov edx, dword [esp + 0x34]
push ebx
lea eax, [esi + 0x30]
push edx
push eax
mov dword [esi + 4], eax
call fcn.006d39d8
mov eax, dword [esi + 4]
add esp, 0xc
mov byte [ebx + eax], 0
mov dword [esi + 0x2c], 1
mov ecx, dword [esp + 0x60]
mov edi, dword [ecx]
test edi, edi
je 0x691cfe
cmp byte [edi + 0x1e], 0
je 0x691cb9
xor edi, edi
jmp 0x691d7d
cmp byte [edi + 0xe2], 0
je 0x691cfe
mov edx, 0x30
cmp dx, word [edi + 0xe0]
ja 0x691cfe
mov eax, dword [edi + 0xec]
test eax, eax
je 0x691cfe
mov ecx, dword [eax]
inc dword [edi + 0xe4]
mov dword [edi + 0xec], ecx
mov ecx, dword [edi + 0xe4]
cmp ecx, dword [edi + 0xe8]
jle 0x691d59
mov dword [edi + 0xe8], ecx
jmp 0x691d59
cmp dword [0x100d93d0], 0
je 0x691d3a
mov eax, dword [0x100db020]
test eax, eax
je 0x691d1a
push eax
call dword [0x100d9418]
add esp, 4
lea ebx, [esp + 0x28]
mov eax, 0x30
call fcn.0065b108
mov eax, dword [0x100db020]
test eax, eax
je 0x691d49
push eax
call dword [0x100d9420]
jmp 0x691d46
push 0x30
call dword [0x100d93e8]
mov dword [esp + 0x2c], eax
add esp, 4
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x691d59
test edi, edi
je 0x691d59
mov byte [edi + 0x1e], 1
mov edi, eax
test edi, edi
je 0x691d7d
push 0x30
push 0
push edi
call fcn.006d1728
add esp, 0xc
or edx, 0xffffffff
mov byte [edi], 0x4c
mov word [edi + 0x1e], dx
mov dword [edi + 0x2c], 1
mov eax, dword [esp + 0x60]
mov ebx, dword [eax]
test edi, edi
jne 0x691d9a
push ebp
push ebx
call fcn.0067eec8
push esi
push ebx
call fcn.0067eec8
add esp, 0x10
jmp 0x691ddd
test esi, esi
je 0x691db8
mov ecx, 0x100
mov dword [edi + 0xc], esi
test word [esi + 2], cx
je 0x691db8
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [esi + 0x14]
mov dword [edi + 0x14], eax
test ebp, ebp
je 0x691dd6
mov ecx, 0x100
mov dword [edi + 8], ebp
test word [ebp + 2], cx
je 0x691dd6
mov edx, ecx
or word [edi + 2], dx
mov eax, dword [ebp + 0x14]
mov dword [edi + 0x14], eax
mov ebx, edi
call fcn.0067e938
mov ebp, dword [esp + 0x10]
test ebp, ebp
jne 0x691deb
mov dword [esp + 0x10], edi
jmp 0x691e61
test edi, edi
je 0x691e61
mov ebx, dword [esp + 0x14]
mov ecx, 0x30
mov esi, ebx
call fcn.0065b758
mov esi, eax
test esi, esi
je 0x691f97
push 0x30
push 0
push esi
call fcn.006d1728
or ecx, 0xffffffff
mov edx, 0x100
add esp, 0xc
mov byte [esi], 0x45
mov word [esi + 0x1e], cx
mov dword [esi + 0x2c], 1
mov dword [esi + 0xc], edi
test word [edi + 2], dx
je 0x691e41
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
mov dword [esi + 8], ebp
test word [ebp + 2], dx
je 0x691e56
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.0067e938
mov dword [esp + 0x10], esi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x70]
inc eax
cmp eax, dword [edx + 0x14]
mov dword [esp + 0x18], eax
jl 0x6919ec
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x70]
cmp eax, dword [ecx]
jne 0x692006
cmp dword [esp + 0x7c], 0
jle 0x692006
mov esi, dword [esp + 0x14]
mov ecx, 0x31
call fcn.0065b758
mov ebx, eax
test ebx, ebx
je 0x691edd
push 0x31
push 0
push ebx
call fcn.006d1728
add esp, 0xc
push 0
lea eax, [ebx + 0x30]
or edx, 0xffffffff
push 0
push eax
mov byte [ebx], 0x84
mov word [ebx + 0x1e], dx
mov dword [ebx + 4], eax
call fcn.006d39d8
mov eax, dword [ebx + 4]
mov byte [eax], 0
add esp, 0xc
mov dword [ebx + 0x2c], 1
mov ecx, 0x31
call fcn.0065b758
mov edi, eax
test edi, edi
je 0x691f24
push 0x31
push 0
push edi
call fcn.006d1728
add esp, 0xc
push 0
lea eax, [edi + 0x30]
or ecx, 0xffffffff
push 0
push eax
mov byte [edi], 0x98
mov word [edi + 0x1e], cx
mov dword [edi + 4], eax
call fcn.006d39d8
mov edx, dword [edi + 4]
mov byte [edx], 0
add esp, 0xc
mov dword [edi + 0x2c], 1
test ebx, ebx
je 0x691f48
test edi, edi
je 0x691f48
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x64]
mov dword [ebx + 0x18], eax
mov byte [ebx + 1], 0x64
mov edx, dword [ecx + 0x20]
or eax, 0xffffffff
mov dword [edi + 0x18], edx
mov word [edi + 0x1c], ax
mov ebp, dword [esp + 0x60]
mov esi, dword [ebp]
mov ecx, 0x30
call fcn.0065b758
mov esi, eax
test esi, esi
je 0x691f7d
push 0x30
push 0
push esi
call fcn.006d1728
add esp, 0xc
or ecx, 0xffffffff
mov byte [esi], 0x4b
mov word [esi + 0x1e], cx
mov dword [esi + 0x2c], 1
mov ebp, dword [ebp]
test esi, esi
jne 0x691fad
push ebx
push ebp
call fcn.0067eec8
push edi
push ebp
call fcn.0067eec8
add esp, 0x10
jmp 0x691ff0
push ebp
push ebx
call fcn.0067eec8
push edi
push ebx
call fcn.0067eec8
add esp, 0x10
jmp 0x691e5d
test edi, edi
je 0x691fcb
mov edx, 0x100
mov dword [esi + 0xc], edi
test word [edi + 2], dx
je 0x691fcb
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [edi + 0x14]
mov dword [esi + 0x14], ecx
test ebx, ebx
je 0x691fe9
mov edx, 0x100
mov dword [esi + 8], ebx
test word [ebx + 2], dx
je 0x691fe9
mov eax, edx
or word [esi + 2], ax
mov ecx, dword [ebx + 0x14]
mov dword [esi + 0x14], ecx
mov ebx, esi
call fcn.0067e938
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push esi
push edx
call fcn.0067ebf8
add esp, 8
mov dword [esp + 0x10], eax
mov ebp, dword [esp + 0x64]
mov edi, dword [esp + 0x60]
mov ebx, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
lea esi, [esp + 0x38]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x38], edi
call fcn.0067e298
mov eax, dword [esp + 0x10]
xor ebx, ebx
push ebx
push ebx
push eax
push ebp
push edi
call fcn.006adae8
add esp, 0x14
cmp dword [esp + 0x7c], ebx
mov dword [esp + 0x60], eax
jle 0x692082
mov ecx, dword [esp + 0x70]
cmp byte [ecx + 0x18], bl
jne 0x692082
mov eax, dword [edi + 0x1a8]
cmp eax, ebx
je 0x69207b
mov edi, eax
mov byte [edi + 0x159], 1
mov edi, dword [esp + 0x2c]
mov esi, dword [edi + 0xc]
cmp dword [edi + 0x10], esi
mov edx, dword [esp + 0x70]
movzx ebp, byte [edx + 0x18]
jg 0x69209f
call fcn.00671688
test eax, eax
jne 0x6920c7
mov ecx, dword [edi + 0x14]
inc dword [edi + 0xc]
mov edx, dword [esp + 0x7c]
lea eax, [esi + esi*4]
lea eax, [ecx + eax*4]
mov byte [eax], 0x6d
mov byte [eax + 3], bl
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov byte [edi + 0x62], bl
mov eax, dword [esp + 0x60]
cmp eax, ebx
je 0x6920d8
push eax
call fcn.006ae5b8
add esp, 4
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.0067eec8
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, ebx
je 0x692103
mov ecx, dword [edi + 0xc]
cmp ecx, eax
jle 0x692103
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x14]
mov dword [eax + edx*4 + 8], ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x4c
ret