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

Disassembly:
add byte [eax], al
lea edi, [edx - 1]
cmp edi, eax
jae 0x1000553c
mov dword [esp + 0x638], ebx
lea edi, [ebx + eax]
sub edi, edx
lea ebx, [edx + edx]
neg ebx
lea ecx, [esp + eax*2 + 0x42c]
movsx edi, byte [edi + 1]
mov word [ebx + ecx + 2], di
mov ecx, eax
mov ebx, dword [esp + 0x638]
sub ecx, edx
lea eax, [esp + 0x42c]
movsx edx, byte [ecx + ebx]
mov word [esp + ecx*2 + 0x42c], dx
call fcn.10004893
mov ecx, eax
test ecx, ecx
jbe 0x100055b8
mov edx, dword [esp + 0xc98]
xor eax, eax
mov ebx, dword [edx + 0x98]
mov edx, ecx
shr edx, 1
je 0x100055ee
mov dword [esp + 0x640], esi
xor edi, edi
imul eax, ebx
movzx esi, word [esp + edi*4 + 0x42c]
add eax, esi
imul eax, ebx
movzx esi, word [esp + edi*4 + 0x42e]
inc edi
add eax, esi
cmp edi, edx
jb 0x10005578
mov esi, dword [esp + 0x640]
lea edi, [edi + edi + 1]
lea edx, [edi - 1]
cmp edx, ecx
jae 0x100055ba
imul ebx, eax
movzx eax, word [esp + edi*2 + 0x42a]
add eax, ebx
jmp 0x100055ba
xor eax, eax
mov edx, dword [esp + 0x644]
mov ecx, dword [esp + 0x648]
movzx ebx, word [edx + esi*2]
mov edx, dword [esp + 0xc58]
add edx, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x650]
test byte [eax + edx*2], ah
push es
add byte [eax], al
je 0x100055f5
jmp 0x10005373
mov edi, 1
jmp 0x100055a2
mov eax, dword [esp + 0xc88]
mov esi, dword [esp + 0xa50]
mov edi, dword [esp + 0x854]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0xc58]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x85c]
mov dword [eax + 0x44], edx
mov edx, dword [esp + 0x840]
mov dword [eax + 0x34], edx
mov edx, dword [esp + 0x84c]
mov dword [eax + 0x50], edx
mov edx, dword [esp + 0x860]
mov dword [eax + 0x3c], edx
mov edx, dword [esp + 0xc84]
mov dword [eax + 0x64], edx
mov edx, dword [esp + 0x844]
mov dword [eax + 0x4c], edx
mov edx, dword [esp + 0x850]
mov dword [eax + 0x30], edx
mov edx, dword [esp + 0x83c]
mov dword [eax + 0x6c], edx
mov edx, dword [esp + 0x18]
mov dword [eax + 0x54], edx
mov edx, dword [esp + 0x848]
mov dword [eax + 0x70], edx
mov edx, dword [esp + 0x858]
mov dword [eax + 0x68], edi
mov dword [eax + 0x78], esi
mov dword [eax + 0x24], edx
mov edx, dword [esi + 0x3c]
mov ebx, dword [esp + 0xc98]
mov eax, dword [ebx + 0xc8]
mov ecx, dword [edx + esi + 0x78]
mov dword [esp + 0x870], eax
mov edx, dword [ecx + esi + 0x20]
mov edi, dword [ecx + esi + 0x1c]
add edx, esi
mov ecx, dword [ecx + esi + 0x24]
add edi, esi
add ecx, esi
xor esi, esi
mov dword [esp + 0x864], ecx
mov dword [esp + 0x868], edi
mov dword [esp + 0x86c], edx
jmp 0x100056cf
inc esi
mov ecx, dword [esp + 0x86c]
lea eax, [esp + 0x634]
mov ebx, dword [eax + 0x41c]
mov edx, 0x208
add ebx, dword [ecx + esi*4]
call fcn.10004b77
mov eax, ebx
call fcn.1000485f
mov ecx, eax
test eax, eax
je 0x1000588b
cmp eax, 6
jbe 0x100057d4
mov dword [esp + 0x10], ecx
lea edx, [eax + ebx]
neg edx
lea ecx, [esp + eax*2 + 0x634]
add edx, ecx
lea edi, [eax + eax]
mov dword [esp + 0x848], ecx
mov ecx, dword [esp + 0x10]
cmp edx, edi
jg 0x10005738
neg edx
cmp edx, eax
jle 0x100057d4
mov edi, eax
shr edi, 1
je 0x10005933
xor ecx, ecx
lea edx, [ebx + eax]
mov dword [esp + 0x844], esi
mov dword [esp + 0x84c], edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x83c], ebx
mov esi, ecx
mov ebx, dword [esp + 0x848]
lea eax, [ecx*4]
add al, 0x8d
add byte [eax], al
add byte [eax], al
neg eax
inc ecx
movsx edi, byte [esi + edx]
mov word [ebx + eax], di
movsx edi, byte [esi + edx - 1]
add esi, 0xfffffffe
mov word [ebx + eax - 2], di
cmp ecx, dword [esp + 0x84c]
jb 0x10005762
mov eax, dword [esp + 0x18]
lea edx, [ecx + ecx + 1]
mov ebx, dword [esp + 0x83c]
mov esi, dword [esp + 0x844]
lea ecx, [edx - 1]
cmp ecx, eax
jae 0x100057c7
lea ecx, [ebx + eax]
sub ecx, edx
add edx, edx
neg edx
movsx edi, byte [ecx + 1]
mov ecx, dword [esp + 0x848]
mov word [edx + ecx + 2], di
lea edx, [eax + 1]
sub eax, edx
lea ecx, [eax + 1]
jmp 0x1000588b
mov edx, eax
shr edx, 1
mov dword [esp + 0x850], edx
je 0x10006c03
xor edx, edx
lea ecx, [esp + eax*2 + 0x634]
mov dword [esp + 0x840], ecx
lea edi, [ebx + eax]
mov dword [esp + 0x18], eax
xor ecx, ecx
mov dword [esp + 0x83c], ebx
mov dword [esp + 0x844], esi
mov eax, dword [esp + 0x840]
movsx esi, byte [ecx + edi]
lea ebx, [edx*4]
neg ebx
inc edx
mov word [eax + ebx], si
movsx esi, byte [ecx + edi - 1]
add ecx, 0xfffffffe
mov word [eax + ebx - 2], si
cmp edx, dword [esp + 0x850]
jb 0x10005813
mov eax, dword [esp + 0x18]
lea ecx, [edx + edx]
neg ecx
lea edx, [edx + edx + 1]
mov ebx, dword [esp + 0x83c]
add ecx, eax
mov esi, dword [esp + 0x844]
lea edi, [edx - 1]
cmp edi, eax
jae 0x1000588b
mov dword [esp + 0x83c], ebx
lea edi, [ebx + eax]
sub edi, edx
lea ebx, [edx + edx]
neg ebx
lea ecx, [esp + eax*2 + 0x634]
movsx edi, byte [edi + 1]
mov word [ebx + ecx + 2], di
mov ecx, eax
mov ebx, dword [esp + 0x83c]
sub ecx, edx
lea eax, [esp + 0x634]
movsx edx, byte [ecx + ebx]
mov word [esp + ecx*2 + 0x634], dx
call fcn.10004893
mov ecx, eax
test ecx, ecx
jbe 0x10005907
mov edx, dword [esp + 0xc98]
xor eax, eax
mov ebx, dword [edx + 0x98]
mov edx, ecx
shr edx, 1
je 0x1000593d
mov dword [esp + 0x844], esi
xor edi, edi
imul eax, ebx
movzx esi, word [esp + edi*4 + 0x634]
add eax, esi
imul eax, ebx
movzx esi, word [esp + edi*4 + 0x636]
inc edi
add eax, esi
cmp edi, edx
jb 0x100058c7
mov esi, dword [esp + 0x844]
lea edi, [edi + edi + 1]
lea edx, [edi - 1]
cmp edx, ecx
jae 0x10005909
imul ebx, eax
movzx eax, word [esp + edi*2 + 0x632]
add eax, ebx
jmp 0x10005909
xor eax, eax
mov edx, dword [esp + 0x864]
mov ecx, dword [esp + 0x868]
movzx ebx, word [edx + esi*2]
mov edx, dword [esp + 0xa50]
add edx, dword [ecx + ebx*4]
cmp eax, dword [esp + 0x870]
je 0x10005944
jmp 0x100056ce
mov edx, 1
jmp 0x100057a7
mov edi, 1
jmp 0x100058f1
mov eax, dword [esp + 0xc88]
mov esi, dword [esp + 0xa50]
mov ebx, dword [esp + 0xc98]
mov dword [eax + 0x58], edx
mov edx, dword [esi + 0x3c]
mov eax, dword [ebx + 0xb0]
mov dword [esp + 0xa60], eax
mov ecx, dword [edx + esi + 0x78]
mov edx, dword [ecx + esi + 0x20]
mov edi, dword [ecx + esi + 0x1c]
add edx, esi
mov ecx, dword [ecx + esi + 0x24]
add edi, esi
add ecx, esi
xor esi, esi
mov dword [esp + 0xa54], ecx
mov dword [esp + 0xa58], edi
mov dword [esp + 0xa5c], edx
jmp 0x1000599c
mov edx, 1
jmp 0x10005858