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

Disassembly:
mov edx, dword [esp + 0x30]
add edx, dword [esi + ebp*4]
cmp byte [edx], 0
je 0x10001d3f
xor ebx, ebx
inc ebx
cmp byte [ebx + edx], 0
jne 0x10001529
xor ecx, ecx
test ebx, ebx
je 0x10001575
mov dword [esp + 0x18], ebp
xor eax, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], edi
mov ebp, dword [esp + 0xc]
movzx esi, byte [eax + edx]
xor ebx, ebx
test ebp, ebp
jbe 0x1000155f
xor edi, edi
inc edi
add ebx, ecx
cmp edi, ebp
jb 0x10001558
inc eax
lea ecx, [ebx + esi]
cmp eax, dword [esp + 0x1c]
jb 0x1000154c
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp ecx, edi
je 0x10001d26
inc ebp
cmp ebp, dword [esp + 8]
jb 0x10001517
mov ebx, dword [esp + 0x30]
xor eax, eax
mov edx, dword [0x1001c123]
push edx
push 0
call eax
mov ebp, eax
mov edi, dword [ebx + 0x3c]
add edi, ebx
mov eax, dword [0x1001c0eb]
mov edx, dword [0x1001c12b]
mov ecx, dword [0x1001c0d7]
mov esi, dword [edi + eax*8 + 0x78]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov edx, dword [esi + ebx + 0x24]
mov edi, dword [esi + ebx + 0x20]
and byte [ebx], al
ror dword [ebx + 0x31c1e4c], cl
sti
mov eax, dword [esi + ebx + 0x18]
add ecx, ebx
test eax, eax
jbe 0x10001661
mov dword [esp + 0x1c], ebp
xor esi, esi
mov dword [esp + 0x30], ebx
xor byte [ecx - 0x76f7dbbc], cl
dec esp
and al, 4
mov dword [esp], edx
mov ebp, dword [esp + 0x10]
mov edx, dword [esp + 0x30]
add edx, dword [edi + esi*4]
cmp byte [edx], 0
je 0x10001d1f
xor ebx, ebx
inc ebx
cmp byte [ebx + edx], 0
jne 0x10001602
xor ecx, ecx
test ebx, ebx
je 0x1000164a
mov dword [esp + 0x20], ebx
xor eax, eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], edi
mov ebp, dword [esp + 0xc]
movzx esi, byte [eax + edx]
xor ebx, ebx
test ebp, ebp
jbe 0x10001634
xor edi, edi
inc edi
add ebx, ecx
cmp edi, ebp
jb 0x1000162d
inc eax
lea ecx, [ebx + esi]
cmp eax, dword [esp + 0x20]
jb 0x10001621
mov esi, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x10]
cmp ecx, ebp
je 0x10001d02
add byte [eax], al
inc esi
cmp esi, dword [esp + 8]
jb 0x100015f0
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
xor eax, eax
push 0x104
push ebp
push 0
call eax
mov edx, eax
mov eax, dword [str.fpfqn]
mov esi, dword [0x1001c12f]
movzx ecx, word [ebp + edx*2 - 2]
cmp cx, si
je 0x1000169c
xor edi, edi
mov word [ebp + edx*2], di
dec edx
mov esi, dword [0x1001c12f]
movzx ecx, word [ebp + edx*2 - 2]
cmp cx, si
jne 0x10001686
cmp byte [eax], 0
je 0x100016b4
xor ecx, ecx
movsx esi, byte [ecx + eax]
inc ecx
mov word [ebp + edx*2], si
inc edx
cmp byte [ecx + eax], 0
add dword [eax], eax
jne 0x100016a3
mov edi, dword [ebx + 0x3c]
add edi, ebx
mov eax, dword [0x1001c0eb]
mov edx, dword [0x1001c0db]
fcmovnb st(0), st(0)
add dword [eax], edx
mov ecx, dword [0x1001c0d7]
mov esi, dword [edi + eax*8 + 0x78]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov edi, dword [esi + ebx + 0x24]
mov edx, dword [esi + ebx + 0x20]
add edi, ebx
mov ecx, dword [esi + ebx + 0x1c]
add edx, ebx
mov esi, dword [esi + ebx + 0x18]
add ecx, ebx
test esi, esi
jbe 0x1000177e
mov dword [esp], edi
xor eax, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x30]
add ebx, dword [edx + eax*4]
cmp byte [ebx], 0
je 0x10001cfb
xor esi, esi
inc esi
cmp ebp, edi
je 0x10001cde
inc eax
cmp eax, dword [esp + 8]
jb 0x1000170d
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x1c]
xor eax, eax
mov dword [esp + 0x30], ebx
xor ebx, ebx
push ebx
mov edi, dword [0x1001c103]
mov esi, dword [0x1001c0f3]
mov ecx, dword [0x1001c0e7]
mov edx, dword [0x1001c0e3]
push edx
push ecx
push ebx
push esi
push edi
push ebp
mov ebx, dword [esp + 0x4c]
call eax
mov esi, eax
mov eax, dword [ebx + 0x3c]
mov edi, dword [esp]
movzx edx, word [edi + eax*2]
mov ebx, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [esp + 4]
mov ebp, dword [esp + 0x1c]
add eax, dword [ecx + edx*4]
jmp 0x10001780
xor ebp, ebp
jmp 0x10001767
mov edx, dword [esp]
movzx edx, word [edx + esi*2]
mov ebx, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [esp + 4]
dec esp
and al, 4
mov ebp, dword [esp + 0x1c]
add eax, dword [ecx + edx*4]
jmp 0x10001663
xor ecx, ecx
jmp 0x1000164a
mov edx, dword [esp]
movzx edx, word [edx + ebp*2]
mov ebx, dword [esp + 0x30]
mov eax, ebx
mov ecx, dword [esp + 4]
add eax, dword [ecx + edx*4]
jmp 0x1000158a
xor ecx, ecx
jmp 0x10001575