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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x18], ebx
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [esp + 0x34], eax
mov dword [esp + 0x3c], ecx
mov esi, dword [ecx + 8]
mov eax, dword [ecx]
mov dword [esp + 0x38], esi
mov dword [esp + 0x24], eax
call fcn.10069520
movzx edi, byte [ebx + 0x2b]
sub edi, 1
mov dword [esp + 0x30], edi
js 0x100a09f4
mov ecx, dword [esp + 0x34]
lea eax, [edi + edi*4]
shl eax, 4
add ecx, 0x38
add ecx, eax
add ebx, 0x2f4
add ebx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], ebx
mov edx, dword [esi + 0x18]
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x14], eax
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x100a0483
mov eax, dword [ebx + 4]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x60], eax
mov dl, byte [ebx + 0x19]
cmp dl, 0xa0
je 0x100a0518
mov eax, dword [ebx + 0x20]
mov ecx, dword [esi + 0x20]
movzx edi, byte [ebx + 0x1a]
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x100a04cb
push edi
push dword [esp + 0x30]
movzx edx, dl
mov ecx, esi
push dword [esp + 0x30]
call fcn.10051a30
add esp, 0xc
jmp 0x100a0500
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x28]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x2c]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], edi
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov eax, dword [esi]
cmp byte [eax + 0x45], 0
jne 0x100a0518
mov eax, dword [esi + 0x20]
mov ecx, dword [esi + 4]
lea edx, [eax + eax*4]
mov al, byte [ebx + 0x1b]
mov byte [ecx + edx*4 - 0x11], al
mov eax, dword [esp + 0x14]
test dword [eax + 0x24], 0x800
je 0x100a065c
cmp dword [ebx + 0x24], 0
jle 0x100a065c
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x100a054e
mov eax, dword [ebx - 4]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x60], eax
mov edx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x28]
mov dword [esp + 0x2c], edx
lea edi, [edx - 1]
lea edi, [edi + edi*2]
lea edi, [eax + edi*4]
test edx, edx
jle 0x100a065c
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, dword [edi + 4]
dec ecx
inc edx
mov dword [eax + 0x60], ecx
mov eax, dword [esi]
mov ebx, dword [esi + 0x20]
cmp byte [eax + 0x45], 0
je 0x100a0590
mov eax, 0x100fe494
jmp 0x100a05a1
test edx, edx
lea eax, [ebx - 1]
cmovns eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], ebx
mov al, byte [edi + 8]
mov ecx, dword [esi + 0x20]
mov edx, dword [edi + 4]
mov ebx, dword [edi]
mov byte [esp + 0x13], al
mov eax, dword [esi + 0x18]
mov dword [esp + 0x28], edx
cmp dword [eax + 0x58], ecx
jg 0x100a05d4
push 0
push edx
movzx edx, byte [esp + 0x1b]
mov ecx, esi
push ebx
call fcn.10051a30
add esp, 0xc
jmp 0x100a060d
mov dl, byte [esp + 0x13]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x28]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], ebx
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov edx, dword [edi + 4]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
mov dword [eax + 0x60], ecx
lea eax, [edx - 1]
mov ebx, dword [esi + 0x20]
test eax, eax
mov eax, dword [esi]
mov ecx, ebx
cmovns ecx, edx
cmp byte [eax + 0x45], 0
je 0x100a0636
mov eax, 0x100fe49c
jmp 0x100a0642
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
add eax, 0xfffffff4
mov edx, dword [esp + 0x2c]
sub edi, 0xc
dec edx
mov dword [eax], ebx
mov dword [esp + 0x2c], edx
test edx, edx
jg 0x100a0570
mov ebx, dword [esp + 0x1c]
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x100a0677
mov eax, dword [ebx - 8]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x60], eax
mov edx, dword [ebx]
test edx, edx
je 0x100a0741
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
cmp dword [eax + 0x58], ecx
jg 0x100a06a9
push 0
push edx
push 0
mov edx, 0xd
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a06dc
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xd
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, dword [ebx]
dec ecx
mov dword [eax + 0x60], ecx
mov eax, dword [esi]
mov edi, dword [esi + 0x20]
cmp byte [eax + 0x45], 0
je 0x100a06fa
mov eax, 0x100fe494
jmp 0x100a070b
test edx, edx
lea eax, [edi - 1]
cmovns eax, edx
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edi
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, dword [ebx]
dec ecx
add edx, 0xfffffffe
mov dword [eax + 0x60], ecx
mov edi, dword [esi + 0x20]
mov eax, dword [esi]
lea ecx, [edi - 1]
cmovns ecx, edx
cmp byte [eax + 0x45], 0
je 0x100a0735
mov eax, 0x100fe494
jmp 0x100a073e
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edi
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x100a07d6
lea ecx, [edi - 1]
test ecx, ecx
jns 0x100a0757
mov ecx, dword [esi + 0x20]
dec ecx
mov eax, dword [esi]
cmp byte [eax + 0x45], 0
je 0x100a0766
mov edx, 0x100fe494
jmp 0x100a076f
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea edx, [eax + ecx*4]
mov edx, dword [edx + 4]
mov eax, dword [ebx + 0x10]
neg edx
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x2c], eax
sbb edx, edx
mov eax, dword [esi + 0x18]
add edx, 0x8e
cmp dword [eax + 0x58], ecx
jg 0x100a07a1
push 0
push edi
push dword [esp + 0x34]
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a07d6
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov byte [eax + ecx*4], dl
mov edx, dword [esp + 0x2c]
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], edi
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov byte [eax + ecx*4 + 1], 0
mov edx, dword [ebx - 0x14]
test edx, edx
je 0x100a09d3
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
cmp dword [eax + 0x58], edi
jg 0x100a0804
push 0
push 0
push edx
mov edx, 0x8a
mov ecx, esi
call fcn.10051a30
add esp, 0xc
mov edi, eax
jmp 0x100a0837
lea eax, [edi + 1]
mov dword [esi + 0x20], eax
lea ecx, [edi + edi*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x8a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
test byte [eax + 0x24], 0x40
jne 0x100a089f
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0x20]
mov ecx, dword [esi + 0x20]
mov edx, dword [edx]
cmp dword [eax + 0x58], ecx
jg 0x100a0868
push 0
push 0
push edx
mov edx, 0x68
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a089b
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x68
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x14]
test dword [eax + 0x24], 0x200
je 0x100a08ff
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
mov edx, dword [ebx - 0xc]
cmp dword [eax + 0x58], ecx
jg 0x100a08cc
push 0
push 0
push edx
mov edx, 0x68
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a08ff
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0x68
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp byte [ebx + 0x19], 0xf
mov edx, dword [ebx + 8]
mov ecx, dword [esi + 0x20]
jne 0x100a0952
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x100a0932
push 0
push edx
push dword [esp + 0x34]
mov edx, 0xe
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a09a3
mov ebx, dword [esp + 0x2c]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0xe
jmp 0x100a098a
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x100a0970
push 0
push edx
push 0
mov edx, 0xd
mov ecx, esi
call fcn.10051a30
add esp, 0xc
jmp 0x100a09a3
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov word [eax + ecx*4], 0xd
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0x10], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 8], edx
mov byte [eax + ecx*4 + 3], 0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
dec ecx
test edi, edi
mov dword [eax + 0x60], ecx
mov edx, dword [esi + 0x20]
mov eax, dword [esi]
lea ecx, [edx - 1]
cmovns ecx, edi
cmp byte [eax + 0x45], 0
je 0x100a09c7
mov eax, 0x100fe494
jmp 0x100a09d0
mov eax, dword [esi + 4]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov edi, dword [esp + 0x30]
sub ebx, 0x50
sub dword [esp + 0x20], 0x50
dec edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x1c], ebx
test edi, edi
jns 0x100a0461
mov ebx, dword [esp + 0x18]
mov edx, dword [esi + 0x18]
mov ecx, dword [edx + 0x78]
test ecx, ecx
je 0x100a0a0f
mov eax, dword [ebx + 0x34]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [esi + 0x20]
mov dword [ecx], eax
mov eax, dword [esi + 0x20]
dec eax
mov dword [edx + 0x60], eax
xor edx, edx
mov dword [esp + 0x14], edx
cmp byte [ebx + 0x2b], dl
jbe 0x100a0c73
add ebx, 0x320
mov dword [esp + 0x1c], ebx
nop
movzx eax, byte [ebx - 0x14]
mov edi, dword [ebx]
lea eax, [eax + eax*4]
shl eax, 4
add eax, dword [esp + 0x34]
test byte [eax + 0x30], 0x10
mov ecx, dword [eax + 0x18]
mov dword [esp + 0x28], ecx
je 0x100a0a75
mov esi, dword [esp + 0x24]
cmp byte [esi + 0x45], 0
mov esi, dword [esp + 0x38]
jne 0x100a0a75
mov edx, dword [ebx - 0x20]
mov ecx, esi
push 0
push dword [eax + 0x28]
push dword [ebx - 0x3c]
call fcn.1009b030
add esp, 0xc
jmp 0x100a0c4f
test byte [ecx + 0x2a], 2
jne 0x100a0b41
cmp dword [ecx + 0xc], 0
jne 0x100a0b41
mov ecx, dword [esp + 0x18]
test byte [ecx + 0x24], 0x10
jne 0x100a0b41
cmp byte [ecx + 0x28], 0
mov edx, dword [edi + 0x24]
mov dword [esp + 0x2c], edx
jne 0x100a0b17
test dl, 0x40
jne 0x100a0b17
mov eax, dword [eax + 0x38]
mov ecx, dword [esi + 0x20]
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x18]
cmp dword [eax + 0x58], ecx
jg 0x100a0ad8
push 0
push 0
push dword [esp + 0x38]
mov edx, 0x3d
mov ecx, esi
call fcn.10051a30
mov edx, dword [esp + 0x38]
add esp, 0xc
jmp 0x100a0b13
mov ebx, dword [esp + 0x30]
lea eax, [ecx + 1]
mov dword [esi + 0x20], eax
lea ecx, [ecx + ecx*4]
mov eax, dword [esi + 4]
mov dword [eax + ecx*4 + 4], ebx
mov ebx, dword [esp + 0x1c]
mov word [eax + ecx*4], 0x3d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x18]
and edx, 0x4300
cmp edx, 0x200
jne 0x100a0b3d
mov eax, dword [ebx - 0x38]
cmp eax, dword [ecx + 0x40]
je 0x100a0b3d
push eax
mov edx, 0x3d
mov ecx, esi
call fcn.10051b50
add esp, 4
mov edx, dword [esp + 0x14]
mov eax, dword [edi + 0x24]
test eax, 0x240
je 0x100a0b50
mov eax, dword [edi + 0x1c]
jmp 0x100a0b5e
test eax, 0x2000
je 0x100a0c53
mov eax, dword [ebx - 8]
mov dword [esp + 0x2c], eax
test eax, eax
je 0x100a0c53
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x28], 0
je 0x100a0b81
mov eax, dword [eax + 0xc]
test byte [eax + 0x2a], 0x20
je 0x100a0c53
mov eax, dword [esp + 0x24]
cmp byte [eax + 0x45], 0
jne 0x100a0c53
mov eax, dword [esi]
mov ecx, dword [esi + 0x20]
mov edi, dword [ebx - 0x20]
mov dword [esp + 0x30], ecx
cmp byte [eax + 0x45], 0
je 0x100a0ba8
mov edx, 0x100fe494
jmp 0x100a0bbd
lea eax, [ecx - 1]
test edi, edi
cmovns eax, edi
lea ecx, [eax + eax*4]
mov eax, dword [esi + 4]
lea edx, [eax + ecx*4]
mov ecx, dword [esp + 0x30]
cmp edi, ecx
jge 0x100a0c4f
mov esi, dword [esp + 0x30]
add edx, 4
sub esi, edi
nop
mov eax, dword [edx]
cmp eax, dword [ebx - 0x3c]
jne 0x100a0c43
mov al, byte [edx - 4]
cmp al, 0x2f
jne 0x100a0c36
mov eax, dword [esp + 0x28]
mov edi, dword [edx + 4]
test byte [eax + 0x2a], 0x20
je 0x100a0bf9
mov ecx, eax
call fcn.10070790
mov eax, dword [eax + 4]
movsx edi, word [eax + edi*2]
mov ecx, dword [esp + 0x2c]
xor eax, eax
movzx ebx, word [ecx + 0x34]
test ebx, ebx
je 0x100a0c1d
mov ecx, dword [ecx + 4]
nop word [eax + eax]
cmp di, word [ecx]
je 0x100a0c31
inc eax
add ecx, 2
cmp eax, ebx
jl 0x100a0c10
or eax, 0xffffffff
mov ebx, dword [esp + 0x1c]
cwde
test eax, eax
js 0x100a0c43
mov dword [edx + 4], eax
mov eax, dword [ebx - 0x38]
jmp 0x100a0c41
movzx eax, ax
jmp 0x100a0c20
cmp al, 0x67
jne 0x100a0c43
mov eax, dword [ebx - 0x38]
mov byte [edx - 4], 0x71
mov dword [edx], eax
add edx, 0x14
sub esi, 1
jne 0x100a0bd0
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc edx
add ebx, 0x50
mov dword [esp + 0x14], edx
mov dword [esp + 0x1c], ebx
movzx eax, byte [eax + 0x2b]
cmp edx, eax
jl 0x100a0a30
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x3c]
mov edx, ebx
mov eax, dword [ebx + 0x38]
mov dword [ecx + 0x1ac], eax
mov ecx, dword [esp + 0x24]
call fcn.1009c080
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret