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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x690f06
sub esp, 0x64
mov eax, 0
lea edi, [esp + 0x4c]
call fcn.0044cada
mov eax, dword [esp + 0x68]
mov edx, dword [eax]
movzx edx, byte [edx + 0x44]
mov byte [eax + 0x50], 0
mov ebx, dword [esp + 0x6c]
mov ebp, dword [ebx]
mov ecx, edx
mov edx, dword [ebp + 4]
mov ebp, dword [ebp]
mov esi, eax
mov eax, dword [esp + 0x78]
cmp eax, edx
jae 0x690eff
mov byte [esp + 0x23], cl
lea edx, [eax + eax*2]
shl edx, 3
movzx edx, byte [ebp + edx]
cmp dl, 5
je 0x690e69
mov edx, dword [ebx + 4]
inc edx
imul edx, eax
mov ebp, dword [esp + 0x7c]
add edx, ebp
mov dword [esp + 0x3c], edx
mov edi, ebp
mov ebp, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
shr edx, 5
cmp edx, ebp
jae 0x690ef8
mov ebp, dword [eax + edx*4]
mov ecx, dword [esp + 0x3c]
mov ebx, 1
shl ebx, cl
test ebp, ebx
je 0x690e5a
xor eax, eax
test al, al
je 0x690e51
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x18]
mov ebx, dword [eax + 0x14]
lea ebp, [edx + 1]
cmp ebp, ecx
jg 0x690df4
lea ecx, [edx + 1]
mov dword [eax + 0x18], ecx
lea ecx, [edx + edx*2]
mov edx, dword [esp + 0x78]
mov dword [ebx + ecx*4], edx
lea edx, [ebx + ecx*4]
mov byte [edx + 4], 0
mov dword [ebx + ecx*4 + 8], edi
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x74]
jmp 0x690673
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x22]
mov eax, edi
mov edx, dword [esp + 0x48]
mov ebp, dword [esp + 0x70]
mov edi, ecx
mov dword [esp + 0x30], esi
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x68]
mov edx, dword [eax]
mov ebp, dword [edx]
mov edx, dword [edx + 4]
mov eax, dword [esp + 0x30]
cmp eax, edx
jae 0x690eea
mov dword [esp + 0x2c], ecx
mov byte [esp + 0x22], bl
lea edx, [eax + eax*2]
lea ebp, [ebp + edx*8]
lea edi, [esp + 0x4c]
mov esi, ebp
call fcn.0044cfb4
movzx ecx, byte [esp + 0x4c]
cmp cl, 4
ja 0x690c6f
shl edx, 3
cmp cl, 1
ja 0x6909f7
test cl, cl
jne 0x690796
test bl, bl
je 0x6906d4
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x2c]
xor edx, edx
mov ebx, dword [esp + 0x6c]
mov ebp, dword [ebx + 4]
inc ebp
imul ebp, eax
add ebp, ecx
mov dword [esp + 0x3c], ebp
mov esi, eax
mov eax, dword [ebx + 0x24]
mov edi, ebx
mov ebx, dword [ebx + 0x20]
shr ebp, 5
cmp ebp, eax
jae 0x690ef1
mov dword [esp + 0x28], ecx
mov byte [esp + 0x22], dl
mov eax, dword [ebx + ebp*4]
mov ecx, dword [esp + 0x3c]
mov edx, 1
shl edx, cl
test eax, edx
je 0x6906c8
xor eax, eax
test al, al
jne 0x69058d
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x74]
mov eax, edi
mov ecx, ebx
mov edx, ebp
mov esi, dword [esp + 0x68]
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x14]
test ebx, ebx
jle 0x690de5
mov edi, edx
lea edx, [ebx - 1]
lea ebx, [ebx + ebx*2]
mov dword [esp + 0x3c], ebx
mov ecx, dword [ebp + ebx*4 - 0xc]
mov dword [esp + 0x34], ecx
shl ebx, 2
mov ecx, dword [esp + 0x3c]
mov ecx, dword [ebp + ecx*4 - 4]
movzx ebx, byte [ebx + ebp - 8]
mov dword [eax + 0x18], edx
lea edx, [eax + 0x14]
mov dword [esp + 0x48], edx
mov ebp, dword [esp + 0x70]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x40]
jmp 0x6905b6
or edx, eax
mov dword [ebx + ebp*4], edx
mov eax, 1
jmp 0x690659
mov ebp, dword [esp + 0x6c]
mov ecx, ebx
mov ebx, dword [ebp]
mov esi, ebp
mov ebp, dword [ebx + 4]
mov ebx, dword [ebx]
cmp eax, ebp
jae 0x690eaf
movzx edx, byte [edx + ebx]
cmp dl, 5
je 0x690790
mov edx, dword [esi + 0x18]
mov ebx, dword [esi + 0x14]
mov ebp, dword [esi + 0x1c]
mov edi, eax
lea eax, [edx + 1]
cmp eax, ebp
jg 0x690736
lea eax, [edx + 1]
mov dword [esi + 0x18], eax
lea eax, [edx + edx*2]
mov dword [ebx + eax*4], edi
lea edx, [ebx + eax*4]
mov byte [edx + 4], 1
mov edx, dword [esp + 0x2c]
mov dword [ebx + eax*4 + 8], edx
mov eax, dword [esp + 0x50]
mov ecx, edx
movzx edx, byte [esp + 0x22]
jmp 0x690617
lea ecx, [0x759380]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.00438b40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x690785
mov dword [ebx + 0x14], eax
mov esi, ebx
mov edi, dword [esp + 0x30]
mov edx, ecx
mov ebx, eax
movzx ecx, byte [esp + 0x22]
jmp 0x69070b
mov edi, dword [esp + 0x48]
call fcn.0044c9e0
jmp 0x690774
mov edx, dword [esp + 0x2c]
jmp 0x690726
mov eax, dword [esp + 0x6c]
mov edx, dword [eax]
mov ebp, dword [edx]
mov edx, dword [edx + 4]
mov ebx, dword [esp + 0x50]
cmp ebx, edx
jae 0x690ea8
mov esi, ebx
lea ebx, [ebx + ebx*2]
shl ebx, 3
movzx ebx, byte [ebx + ebp]
mov edi, ebp
lea ebp, [ebx - 7]
xchg ebp, eax
cmp al, 3
xchg ebp, eax
ja 0x6908eb
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jae 0x690ea1
lea edx, [ebx + ebx*2]
shl edx, 3
movzx edx, byte [edx + edi]
cmp dl, 5
je 0x6908e4
mov edx, dword [eax + 4]
inc edx
imul edx, ebx
mov ebp, dword [esp + 0x2c]
add edx, ebp
mov dword [esp + 0x3c], edx
mov esi, ebp
mov ebp, dword [eax + 0x24]
mov edi, ebx
mov ebx, dword [eax + 0x20]
shr edx, 5
cmp edx, ebp
jae 0x690e9a
mov ebp, dword [ebx + edx*4]
mov ecx, dword [esp + 0x3c]
mov eax, 1
shl eax, cl
test ebp, eax
je 0x6908d5
xor eax, eax
test al, al
je 0x6908cf
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x1c]
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x14]
mov ecx, eax
lea eax, [ebx + 1]
cmp eax, edx
jg 0x690870
lea eax, [ebx + 1]
mov dword [ecx + 0x18], eax
lea eax, [ebx + ebx*2]
mov dword [ebp + eax*4], edi
lea edx, [ebp + eax*4]
mov byte [edx + 4], 0
mov dword [ebp + eax*4 + 8], esi
mov eax, dword [esp + 0x54]
mov ebx, dword [ecx + 4]
mov ecx, ebx
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov dword [esp + 0x38], edi
lea ecx, [0x759380]
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
call fcn.00438b40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x6908c4
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x2c]
mov edi, dword [esp + 0x38]
mov ebx, ecx
mov ebp, eax
mov ecx, dword [esp + 0x6c]
jmp 0x690844
mov edi, dword [esp + 0x48]
call fcn.0044c9e0
jmp 0x6908b2
mov ecx, dword [esp + 0x6c]
jmp 0x69085d
or eax, ebp
mov dword [ebx + edx*4], eax
mov eax, 1
jmp 0x690826
mov ecx, eax
jmp 0x69085d
mov edx, dword [eax + 4]
cmp bl, 5
je 0x6909f0
lea ebx, [edx + 1]
imul ebx, esi
add ebx, edx
mov dword [esp + 0x3c], ebx
mov ebp, dword [eax + 0x24]
mov edi, edx
mov edx, dword [eax + 0x20]
shr ebx, 5
cmp ebx, ebp
jae 0x690e93
mov ebp, dword [edx + ebx*4]
mov ecx, dword [esp + 0x3c]
mov eax, 1
shl eax, cl
test eax, ebp
je 0x6909e1
xor eax, eax
test al, al
je 0x6909db
mov eax, dword [esp + 0x6c]
mov edx, dword [eax + 0x14]
mov ebx, dword [eax + 0x18]
mov ebp, dword [eax + 0x1c]
mov ecx, eax
lea eax, [ebx + 1]
cmp eax, ebp
jg 0x690975
lea eax, [ebx + 1]
mov dword [ecx + 0x18], eax
lea eax, [ebx + ebx*2]
mov dword [edx + eax*4], esi
lea ebx, [edx + eax*4]
mov byte [ebx + 4], 0
mov dword [edx + eax*4 + 8], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], edi
lea ecx, [0x759380]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], eax
call fcn.00438b40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x6909d0
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
mov ebx, ecx
mov edx, eax
mov ecx, dword [esp + 0x6c]
jmp 0x69094c
mov edi, dword [esp + 0x48]
call fcn.0044c9e0
jmp 0x6909bb
mov ecx, dword [esp + 0x6c]
jmp 0x690963
or ebp, eax
mov dword [edx + ebx*4], ebp
mov eax, 1
jmp 0x69092e
mov ecx, eax
jmp 0x690963
cmp cl, 2
jne 0x690b31
test bl, bl
jne 0x690b0d
mov ebp, dword [esp + 0x54]
test ebp, ebp
jb 0x690b05
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
mov esi, edx
mov edx, dword [ebx + 8]
mov edi, eax
mov eax, dword [ebx + 0xc]
cmp ebp, eax
jae 0x690aff
mov eax, dword [ebx]
mov edx, dword [edx + ebp*4]
mov ebp, dword [eax + 4]
mov eax, dword [eax]
cmp edi, ebp
jae 0x690e7e
movzx eax, byte [esi + eax]
cmp al, 5
je 0x690a75
mov eax, dword [ebx + 0x14]
mov ebp, dword [ebx + 0x18]
mov esi, edx
lea edx, [ebp + 1]
mov ebx, dword [ebx + 0x1c]
cmp edx, ebx
jg 0x690a9e
lea edx, [ebp + 1]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x18], edx
lea edx, [ebp + ebp*2]
mov dword [eax + edx*4], edi
lea ebp, [eax + edx*4]
mov byte [ebp + 4], 1
mov dword [eax + edx*4 + 8], esi
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x54]
cmp ebp, edx
jae 0x690e77
mov edx, dword [esp + 0x2c]
mov dword [eax + ebp*4], edx
mov eax, dword [esp + 0x50]
mov ecx, edx
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov dword [esp + 0x3c], esi
lea ecx, [0x759380]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.00438b40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x690af4
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x30]
mov ebp, ecx
movzx ecx, byte [esp + 0x22]
jmp 0x690a59
mov edi, dword [esp + 0x48]
call fcn.0044c9e0
jmp 0x690ae0
mov edx, dword [esp + 0x2c]
jmp 0x690a8e
mov ecx, ebx
mov ebx, dword [esp + 0x6c]
jmp 0x690aff
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [esp + 0x54]
cmp ebx, edx
jae 0x690e85
mov edx, dword [esp + 0x2c]
mov dword [ecx + ebx*4], edx
mov edi, eax
jmp 0x690661
cmp cl, 3
jne 0x690b78
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call ecx
movzx eax, byte [esp + 8]
not eax
and eax, dword [esp + 0x54]
test al, al
jne 0x690b6f
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov edi, dword [esp + 0x6c]
jmp 0x690661
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
test edx, edx
je 0x690c5b
cmp edx, 1
jle 0x690c52
mov edx, dword [esp + 0x2c]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x68]
movzx ebx, byte [ecx + 0x50]
test bl, bl
je 0x690c4b
movzx ebx, byte [esp + 0x23]
test bl, bl
je 0x690c47
test edx, edx
jle 0x690c43
mov ebp, dword [ecx + 0x58]
mov esi, ebx
mov ebx, dword [ecx + 0x54]
cmp ebp, 1
jbe 0x690e70
mov ebx, dword [ebx + 4]
cmp edx, ebx
jle 0x690c00
mov ebx, dword [ecx + 0x58]
mov ebp, dword [ecx + 0x54]
mov edi, edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 8]
cmp ebx, edx
jle 0x690c3f
cmp ebp, eax
je 0x690c00
mov dword [esp], ebp
mov dword [esp + 4], eax
shl edx, 2
mov dword [esp + 8], edx
call fcn.0044d1e0
mov eax, dword [esp + 0x68]
mov byte [eax + 0x50], 1
movzx ecx, byte [esp + 0x23]
test cl, cl
je 0x690c33
mov edx, dword [esp + 0x6c]
mov ebx, dword [edx + 4]
mov ebp, dword [esp + 0x2c]
cmp ebp, ebx
je 0x690c27
mov edi, edx
jmp 0x690661
mov byte [esp + 0x80], 1
add esp, 0x64
ret
mov byte [esp + 0x80], 1
add esp, 0x64
ret
mov edx, ebx
jmp 0x690be9
mov esi, ebx
jmp 0x690c00
mov esi, ebx
jmp 0x690c00
movzx esi, byte [esp + 0x23]
jmp 0x690bd7
mov edx, dword [esp + 0x2c]
jmp 0x690b9a
mov eax, dword [esp + 0x68]
mov byte [eax + 0x50], 1
mov byte [esp + 0x80], 1
add esp, 0x64
ret
cmp cl, 7
ja 0x690cf1
cmp cl, 5
je 0x690ed0
cmp cl, 6
jne 0x690c91
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x2c]
mov edx, ebx
jmp 0x690617
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
lea edx, [esp + 0x4c]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.00689d00
movzx eax, byte [esp + 8]
test al, al
je 0x690ce8
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x2c]
lea ecx, [ebp + ebx]
mov eax, dword [esp + 0x50]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov edi, dword [esp + 0x6c]
jmp 0x690661
cmp cl, 8
je 0x690d92
cmp cl, 9
je 0x690d4f
cmp cl, 0xa
jne 0x690eb6
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
cmp eax, 0xa
je 0x690d46
cmp eax, 0xffffffff
je 0x690d46
mov ebx, dword [esp + 0x2c]
add ecx, ebx
mov eax, dword [esp + 0x50]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov edi, dword [esp + 0x6c]
jmp 0x690661
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 8]
cmp ecx, 0xffffffff
je 0x690d89
mov ebx, dword [esp + 0x2c]
lea ecx, [ebx + eax]
mov eax, dword [esp + 0x50]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov edi, dword [esp + 0x6c]
jmp 0x690661
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x2c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x5c]
test ebx, ebx
jbe 0x690e8c
mov edx, dword [edx]
cmp eax, edx
jne 0x690ddc
mov ebx, dword [esp + 0x2c]
add ecx, ebx
mov eax, dword [esp + 0x50]
movzx edx, byte [esp + 0x22]
jmp 0x690617
mov edi, dword [esp + 0x6c]
jmp 0x690661
movzx eax, byte [esi + 0x50]
mov byte [esp + 0x80], al
add esp, 0x64
ret
lea eax, [0x759380]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], ebp
call fcn.00438b40
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [ebx + 0x1c], edx
mov edx, dword [0xa8f2d0]
test edx, edx
jne 0x690e47
mov dword [ebx + 0x14], eax
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x7c]
mov edx, ecx
mov ebx, eax
mov eax, dword [esp + 0x6c]
jmp 0x690565
lea edi, [ebx + 0x14]
call fcn.0044c9e0
jmp 0x690e32
mov eax, dword [esp + 0x6c]
jmp 0x690580
or ebx, ebp
mov dword [eax + edx*4], ebx
mov eax, 1
jmp 0x690545
mov eax, ebx
jmp 0x690580
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
lea eax, [0x730dc0]
mov dword [esp], eax
lea eax, [0x7fd1e8]
mov dword [esp + 4], eax
call fcn.004275c0
ud2
lea eax, [0x730dc0]
mov dword [esp], eax
lea eax, [0x7fd1f0]
mov dword [esp + 4], eax
call fcn.004275c0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.004266e0
ud2
call fcn.0044b280
jmp fcn.006904a0