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

Disassembly:
sub esp, 0x58
mov eax, dword [esp + 0x5c]
push ebx
mov ebx, dword [esp + 0x68]
push ebp
mov ebp, dword [esp + 0x68]
push esi
push edi
mov dword [esp + 0x10], edx
mov edx, dword [ebx]
mov edi, ecx
mov ecx, dword [eax]
mov dword [eax], 0
mov eax, dword [esp + 0x7c]
mov dword [ebx], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov dword [eax], 0
jmp case.0x100982c1.6
mov ecx, dword [ebx]
mov esi, dword [esp + 0x18]
mov eax, dword [edi]
sub esi, ecx
mov dword [esp + 0x74], esi
cmp eax, 6
jne 0x100982ae
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x6c]
sub eax, dword [ecx]
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], eax
test esi, esi
jne 0x100981b5
test eax, eax
je 0x10098746
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
push edx
push eax
push 0
lea ecx, [esp + 0x7c]
push ecx
push ebp
lea edx, [esp + 0x88]
push edx
mov edx, dword [esp + 0x28]
lea ecx, [edi + 0x58]
call fcn.10097bb0
mov esi, dword [esp + 0x74]
mov edx, dword [esp + 0x10]
push esi
lea ecx, [edi + 0x190]
mov dword [esp + 0x18], eax
call fcn.100973a0
mov eax, dword [esp + 0x70]
add dword [ebx], eax
mov ecx, dword [esp + 0x6c]
add ebp, eax
add dword [edi + 0x18], eax
mov edx, 0
adc dword [edi + 0x1c], edx
add dword [ecx], esi
add dword [esp + 0x10], esi
add dword [edi + 0x20], esi
adc dword [edi + 0x24], edx
cmp dword [esp + 0x14], edx
jne 0x1009875c
mov ecx, dword [esp + 0x7c]
cmp dword [ecx], 1
jne 0x10098294
mov cx, word [edi + 0x10]
call fcn.10097350
xor edx, edx
xor esi, esi
add eax, dword [edi + 0x14]
lea ecx, [esp + 0x28]
adc edx, esi
add eax, dword [edi + 0x18]
adc edx, dword [edi + 0x1c]
push edx
push eax
call fcn.100972f0
mov edx, dword [edi + 0x24]
mov esi, eax
mov eax, dword [edi + 0x20]
push edx
push eax
lea ecx, [esp + esi + 0x30]
call fcn.100972f0
add esi, eax
push esi
lea ecx, [edi + 0x208]
lea edx, [esp + 0x2c]
call fcn.10096cd0
add dword [edi + 0x30], esi
mov eax, 0
mov dword [edi], 7
adc dword [edi + 0x34], eax
add dword [edi + 0x28], 1
mov dword [edi + 4], eax
mov dword [edi + 8], eax
adc dword [edi + 0x2c], eax
jmp case.0x100982c1.6
test eax, eax
jne case.0x100982c1.6
test esi, esi
jne case.0x100982c1.6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x14
xor edx, edx
cmp esi, edx
je 0x1009876a
cmp eax, 7
ja case.0x100982c1.6
jmp dword [eax*4 + 0x10098790]
mov eax, dword [edi + 4]
cmp eax, 0xc
jae 0x100982f9
cmp eax, 6
jae 0x100982e4
mov cl, byte [ebp]
cmp cl, byte [eax + 0x100c0ae0]
jne 0x10098780
mov dl, byte [ebp]
mov byte [eax + edi + 0x290], dl
inc dword [edi + 4]
inc ebp
inc dword [ebx]
jmp case.0x100982c1.6
lea edx, [edi + 0x290]
lea ecx, [edi + 0x10]
call fcn.10097d70
xor esi, esi
cmp eax, esi
jne 0x10098785
lea ecx, [edi + 0x208]
mov dword [edi], 5
call fcn.100967f0
mov dword [edi + 0x30], esi
mov dword [edi + 0x34], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
mov dword [edi + 4], esi
jmp case.0x100982c1.6
mov ecx, dword [edi + 4]
cmp ecx, edx
jne 0x100983ca
mov al, byte [ebp]
mov byte [edi + 0x290], al
inc dword [edi + 4]
inc dword [ebx]
inc ebp
cmp byte [edi + 0x290], dl
jne 0x100983b4
mov ecx, dword [edi + 0x2c]
mov edx, dword [edi + 0x28]
push ecx
push edx
lea ecx, [edi + 0x291]
call fcn.100972f0
inc eax
xor ecx, ecx
add dword [edi + 0x30], eax
mov dword [edi + 0x3c], ecx
lea edx, [edi + 0x270]
adc dword [edi + 0x34], ecx
lea ecx, [edi + 0x208]
mov dword [edi + 0xc], eax
mov dword [edi + 0x38], eax
call fcn.10096de0
lea ecx, [edi + 0x208]
call fcn.100967f0
mov eax, dword [edi + 0xc]
push eax
lea edx, [edi + 0x290]
or ecx, 0xffffffff
call fcn.1009a7b0
mov dword [edi + 0x50], eax
mov dword [edi], 1
movzx ecx, byte [edi + 0x290]
lea edx, [ecx*4 + 4]
mov dword [edi + 0x14], edx
jmp case.0x100982c1.6
mov eax, dword [edi + 0x14]
cmp ecx, eax
je 0x10098401
sub eax, ecx
mov dword [esp + 0x74], eax
cmp eax, esi
jbe 0x100983df
mov dword [esp + 0x74], esi
mov esi, dword [esp + 0x74]
push esi
lea eax, [ecx + edi + 0x290]
push ebp
push eax
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
add dword [ebx], esi
add esp, 0xc
add ebp, esi
jmp case.0x100982c1.6
lea edx, [edi + 0x290]
lea ecx, [edi + 0xf8]
call fcn.10097e30
xor ecx, ecx
cmp eax, ecx
jne 0x10098785
movzx edx, word [edi + 0x10]
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], ecx
mov dword [edi + 0x20], ecx
mov dword [edi + 0x24], ecx
and edx, 0xf
lea ecx, [edi + 0x190]
mov dword [edi], 6
call fcn.10097370
lea ecx, [edi + 0x58]
lea edx, [edi + 0xf8]
call fcn.10097fb0
test eax, eax
je case.0x100982c1.6
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x14
mov eax, dword [edi + 8]
add eax, dword [edi + 0x18]
and eax, 3
or eax, edx
je 0x1009848e
inc ecx
mov dword [ebx], ecx
inc dword [edi + 8]
mov cl, byte [ebp]
inc ebp
test cl, cl
je case.0x100982c1.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x58
ret 0x14
mov cx, word [edi + 0x10]
call fcn.10097350
mov ecx, dword [edi + 4]
mov esi, eax
sub esi, ecx
mov dword [esp + 0x70], eax
je 0x100984cc
mov eax, dword [esp + 0x74]
cmp esi, eax
jbe 0x100984ae
mov esi, eax
push esi
lea edx, [ecx + edi + 0x290]
push ebp
push edx
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
add dword [ebx], esi
add esp, 0xc
add ebp, esi
jmp case.0x100982c1.6
lea ecx, [edi + 0x190]
lea edx, [esp + 0x28]
mov dword [edi], 5
mov dword [edi + 4], 0
call fcn.10097400
test eax, eax
je case.0x100982c1.6
mov eax, dword [esp + 0x70]
lea esi, [edi + 0x290]
lea ecx, [esp + 0x28]
cmp eax, 4
jb 0x1009851b
mov edx, dword [ecx]
cmp edx, dword [esi]
jne 0x1009847f
sub eax, 4
add esi, 4
add ecx, 4
cmp eax, 4
jae 0x10098503
test eax, eax
je case.0x100982c1.6
mov dl, byte [esi]
cmp dl, byte [ecx]
jne 0x1009847f
cmp eax, 1
jbe case.0x100982c1.6
mov dl, byte [esi + 1]
cmp dl, byte [ecx + 1]
jne 0x1009847f
cmp eax, 2
jbe case.0x100982c1.6
mov al, byte [esi + 2]
cmp al, byte [ecx + 2]
jmp 0x10098479
mov edx, dword [edi + 4]
cmp edx, dword [edi + 0xc]
jae 0x1009857a
inc ecx
mov dword [ebx], ecx
mov esi, dword [edi + 4]
mov cl, byte [esi + edi + 0x290]
mov al, byte [ebp]
inc esi
inc ebp
mov dword [edi + 4], esi
cmp al, cl
jmp 0x10098479
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x38]
mov ecx, dword [edi + 0x30]
mov dword [esp + 0x20], edx
cmp dword [edi + 0x3c], eax
ja 0x100985d1
jb 0x10098592
cmp edx, ecx
jae 0x100985d1
sub ecx, edx
sbb eax, dword [edi + 0x3c]
xor edx, edx
cmp edx, eax
jb 0x100985a5
ja 0x100985a3
cmp esi, ecx
jbe 0x100985a5
mov esi, ecx
mov ecx, dword [edi + 0x50]
push esi
mov edx, ebp
call fcn.1009a7b0
push esi
lea ecx, [edi + 0x208]
mov edx, ebp
mov dword [edi + 0x50], eax
call fcn.10096cd0
add dword [ebx], esi
add ebp, esi
add dword [edi + 0x38], esi
adc dword [edi + 0x3c], 0
jmp case.0x100982c1.6
and edx, 3
xor esi, esi
or edx, esi
je 0x10098617
mov cl, byte [ebp]
mov eax, dword [edi + 0x50]
movzx esi, cl
xor esi, eax
shr eax, 8
and esi, 0xff
xor eax, dword [esi*4 + 0x100c3ce0]
mov edx, 1
add ebp, edx
mov dword [edi + 0x50], eax
add dword [ebx], edx
add dword [edi + 0x38], edx
mov eax, 0
adc dword [edi + 0x3c], eax
add dword [edi + 0x30], edx
adc dword [edi + 0x34], eax
jmp 0x10098477
add ecx, 4
adc eax, 0
mov dword [edi + 0x30], ecx
lea ecx, [edi + 0x208]
lea edx, [esp + 0x28]
mov dword [edi], 2
mov dword [edi + 0x34], eax
mov dword [edi + 4], esi
call fcn.10096de0
lea eax, [edi + 0x270]
lea ecx, [esp + 0x28]
mov edx, 0x20
sub ecx, eax
lea esp, [esp]
mov esi, dword [ecx + eax]
cmp esi, dword [eax]
jne 0x1009847f
sub edx, 4
add eax, 4
cmp edx, 4
jae 0x10098650
jmp case.0x100982c1.6
cmp dword [edi + 4], 4
jae 0x1009868a
inc ecx
mov dword [ebx], ecx
mov cl, byte [ebp]
mov eax, dword [edi + 4]
mov byte [eax + edi + 0x290], cl
inc dword [edi + 4]
inc ebp
jmp case.0x100982c1.6
mov dword [edi + 4], edx
mov edx, dword [edi + 0x50]
not edx
cmp edx, dword [edi + 0x290]
mov dword [edi], 3
jmp 0x10098479
mov eax, dword [edi + 4]
mov ecx, dword [esp + 0x74]
mov esi, 0xc
sub esi, eax
cmp esi, ecx
jbe 0x100986b7
mov esi, ecx
push esi
lea eax, [eax + edi + 0x290]
push ebp
push eax
call sub.MSVCRT.dll_memcpy
add dword [edi + 4], esi
add dword [ebx], esi
add esp, 0xc
add ebp, esi
cmp dword [edi + 4], 0xc
jne case.0x100982c1.6
add dword [edi + 0x48], 1
mov ecx, dword [edi + 0x34]
mov edx, dword [edi + 0x30]
mov eax, 0
adc dword [edi + 0x4c], eax
mov dword [edi + 0x40], eax
mov dword [edi + 0x44], eax
movzx eax, word [edi + 0x10]
push ecx
push edx
lea esi, [edi + 0x290]
push eax
mov dword [edi], 4
call fcn.10097dc0
test eax, eax
jne case.0x100982c1.6
pop edi
pop esi
pop ebp
mov eax, 3
pop ebx
add esp, 0x58
ret 0x14
cmp byte [ebp], dl
je 0x10098736
test byte [edi + 0x40], 3
jne 0x10098780
mov dword [edi + 4], edx
mov dword [edi], edx
jmp case.0x100982c1.6
inc ecx
mov dword [ebx], ecx
inc ebp
add dword [edi + 0x40], 1
adc dword [edi + 0x44], edx
jmp case.0x100982c1.6
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
mov dword [ecx], 2
xor eax, eax
pop ebx
add esp, 0x58
ret 0x14
mov eax, dword [esp + 0x14]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x14
mov edx, dword [esp + 0x7c]
pop edi
pop esi
pop ebp
mov dword [edx], 3
xor eax, eax
pop ebx
add esp, 0x58
ret 0x14
mov eax, 0x11
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0x14