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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x10150ad0
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x101ba518]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
push edi
mov eax, dword [0x101ba518]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x1c]
mov esi, dword [ebp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [ebp + 0x14]
push ebx
mov dword [esp + 0x1c], eax
call fcn.1000e100
add esp, 4
mov edi, eax
lea eax, [esp + 0x3c]
mov ecx, edi
push eax
call fcn.1000bcf0
mov dword [esp + 0x98], 0
cmp dword [esp + 0x4c], 0
jne 0x10109764
mov dword [esp + 0x20], 0
jmp 0x10109772
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x10]
movzx eax, ax
mov dword [esp + 0x20], eax
push ebx
call fcn.1000dfd0
add esp, 4
lea ecx, [esp + 0x54]
mov edx, dword [eax]
push ecx
push 0x10181c1a
push str.0123456789ABCDEFabcdef_Xx
mov ecx, eax
call dword [edx + 0x2c]
cmp byte [esi + 4], 0
mov edi, dword [esp + 0x1c]
mov eax, edi
mov dword [esp + 0x14], eax
jne 0x101097a8
mov ecx, esi
call fcn.1010bf20
mov ebx, dword [esp + 0x18]
cmp byte [ebx + 4], 0
jne 0x101097b9
mov ecx, ebx
call fcn.1010bf20
cmp dword [esi], 0
jne 0x101097c5
cmp dword [ebx], 0
je 0x10109816
jmp 0x101097ca
cmp dword [ebx], 0
jne 0x10109816
cmp byte [esi + 4], 0
jne 0x101097d7
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x82]
jne 0x101097ea
mov byte [edi], 0x2b
jmp 0x10109808
cmp byte [esi + 4], 0
jne 0x101097f7
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x80]
jne 0x10109816
mov byte [edi], 0x2d
lea eax, [edi + 1]
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.1010bec0
mov edi, dword [ebp + 0x18]
and edi, 0xe00
cmp edi, 0x400
jne 0x1010982e
mov edi, 8
jmp 0x10109844
cmp edi, 0x800
jne 0x1010983d
mov edi, 0x10
jmp 0x10109844
neg edi
sbb edi, edi
and edi, 0xa
cmp byte [esi + 4], 0
mov dword [ebp + 0x18], edi
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], 0
jne 0x1010985e
mov ecx, esi
call fcn.1010bf20
cmp byte [ebx + 4], 0
jne 0x1010986b
mov ecx, ebx
call fcn.1010bf20
cmp dword [esi], 0
jne 0x1010989e
cmp dword [ebx], 0
jne 0x101098a3
test edi, edi
je 0x10109942
cmp edi, 0xa
je 0x10109942
mov eax, 8
mov ecx, 0x16
cmp edi, eax
cmove ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x1010994a
cmp dword [ebx], 0
jne 0x10109875
cmp byte [esi + 4], 0
jne 0x101098b0
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x54]
jne 0x10109875
mov ecx, esi
mov byte [esp + 0x12], 1
call fcn.1010bec0
push ebx
push esi
call fcn.1010c6a0
add esp, 8
test al, al
je 0x1010992d
cmp byte [esi + 4], 0
jne 0x101098e2
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x86]
je 0x1010990b
cmp byte [esi + 4], 0
jne 0x101098fd
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x84]
jne 0x1010992d
test edi, edi
je 0x10109914
cmp edi, 0x10
jne 0x1010992d
mov edi, 0x10
mov byte [esp + 0x12], 0
mov ecx, esi
mov dword [ebp + 0x18], edi
call fcn.1010bec0
jmp 0x10109886
test edi, edi
jne 0x1010987d
mov edi, 8
mov dword [ebp + 0x18], edi
jmp 0x10109886
mov dword [esp + 0x18], 0xa
mov al, byte [esp + 0x12]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], 0
mov word [esp + 0x24], 0
mov dword [esp + 0x38], 0xf
mov byte [esp + 0x24], al
mov dword [esp + 0x34], 1
mov byte [esp + 0x98], 1
xor edi, edi
jmp 0x10109990
cmp byte [esi + 4], 0
jne 0x101099d7
mov ecx, dword [esi]
test ecx, ecx
je 0x101099cd
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x101099b2
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x101099b2
movzx eax, word [edx]
jmp 0x101099ba
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x101099cd
mov word [esi + 6], ax
jmp 0x101099d3
mov dword [esi], 0
mov byte [esi + 4], 1
cmp byte [ebx + 4], 0
jne 0x10109a1e
mov ecx, dword [ebx]
test ecx, ecx
je 0x10109a14
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x101099f9
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x101099f9
movzx eax, word [edx]
jmp 0x10109a01
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x10109a14
mov word [ebx + 6], ax
jmp 0x10109a1a
mov dword [ebx], 0
mov byte [ebx + 4], 1
mov ecx, dword [esi]
test ecx, ecx
jne 0x10109ab7
cmp dword [ebx], ecx
jne 0x10109ac0
test edi, edi
je 0x10109a4d
cmp dword [esp + 0x38], 0x10
lea eax, [esp + 0x24]
cmovae eax, dword [esp + 0x24]
cmp byte [eax + edi], 0
jle 0x10109c38
inc edi
mov al, byte [esp + 0x12]
cmp dword [esp + 0x50], 0x10
lea edx, [esp + 0x3c]
cmovae edx, dword [esp + 0x3c]
test al, al
je 0x10109c50
test edi, edi
je 0x10109c3f
mov cl, byte [edx]
cmp cl, 0x7f
je 0x10109c3f
dec edi
je 0x10109a94
cmp dword [esp + 0x38], 0x10
lea eax, [esp + 0x24]
cmovae eax, dword [esp + 0x24]
cmp cl, byte [eax + edi]
jne 0x10109c50
test edi, edi
jne 0x10109aae
cmp dword [esp + 0x38], 0x10
lea eax, [esp + 0x24]
cmovae eax, dword [esp + 0x24]
cmp cl, byte [eax]
jl 0x10109c50
cmp byte [edx + 1], 0
jle 0x10109a67
inc edx
jmp 0x10109a67
cmp dword [ebx], 0
jne 0x10109a30
cmp byte [esi + 4], 0
jne 0x10109b05
test ecx, ecx
je 0x10109afb
mov eax, dword [ecx + 0x1c]
mov edx, dword [eax]
test edx, edx
je 0x10109ae0
mov eax, dword [ecx + 0x2c]
cmp dword [eax], 0
jle 0x10109ae0
movzx eax, word [edx]
jmp 0x10109ae8
mov eax, dword [ecx]
call dword [eax + 0x18]
movzx eax, ax
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x10109afb
mov word [esi + 6], ax
jmp 0x10109b01
mov dword [esi], 0
mov byte [esi + 4], 1
mov cx, word [esp + 0x54]
lea eax, [esp + 0x54]
movzx edx, word [esi + 6]
test cx, cx
je 0x10109b31
movzx ecx, cx
lea ebx, [ebx]
cmp cx, dx
je 0x10109b31
movzx ecx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x10109b20
lea ecx, [esp + 0x54]
sub eax, ecx
sar eax, 1
cmp eax, dword [esp + 0x18]
jae 0x10109b97
cmp byte [esp + 0x13], 0
mov ecx, dword [esp + 0x14]
mov al, byte [eax + str.0123456789ABCDEFabcdef_Xx]
mov byte [ecx], al
jne 0x10109b56
cmp al, 0x30
je 0x10109b6b
mov eax, dword [esp + 0x1c]
add eax, 0x1f
cmp ecx, eax
jae 0x10109b6b
inc ecx
mov byte [esp + 0x13], 1
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x38]
lea eax, [esp + 0x24]
mov edx, dword [esp + 0x24]
cmp ecx, 0x10
mov byte [esp + 0x12], 1
cmovae eax, edx
cmp byte [eax + edi], 0x7f
je 0x10109be5
cmp ecx, 0x10
lea eax, [esp + 0x24]
cmovae eax, edx
inc byte [eax + edi]
jmp 0x10109be5
cmp dword [esp + 0x38], 0x10
lea eax, [esp + 0x24]
cmovae eax, dword [esp + 0x24]
cmp byte [eax + edi], 0
je 0x10109a30
cmp word [esp + 0x20], 0
je 0x10109a30
cmp byte [esi + 4], 0
jne 0x10109bc8
mov ecx, esi
call fcn.1010bf20
movzx eax, word [esi + 6]
cmp ax, word [esp + 0x20]
jne 0x10109a30
push 0
push 1
lea ecx, [esp + 0x2c]
call fcn.10044ff0
inc edi
mov ecx, dword [esi]
test ecx, ecx
je 0x10109c29
mov eax, dword [ecx + 0x1c]
cmp dword [eax], 0
je 0x10109c0e
mov edx, dword [ecx + 0x2c]
mov eax, dword [edx]
test eax, eax
jle 0x10109c0e
dec eax
mov dword [edx], eax
mov ecx, dword [ecx + 0x1c]
mov edx, dword [ecx]
lea eax, [edx + 2]
mov dword [ecx], eax
movzx eax, word [edx]
jmp 0x10109c16
mov eax, dword [ecx]
call dword [eax + 0x1c]
movzx eax, ax
mov ecx, 0xffff
cmp cx, ax
je 0x10109c29
mov byte [esi + 4], 0
jmp 0x10109990
mov dword [esi], 0
mov byte [esi + 4], 1
jmp 0x10109990
xor al, al
jmp 0x10109a51
cmp byte [esp + 0x13], 0
mov eax, dword [esp + 0x14]
jne 0x10109c54
mov byte [eax], 0x30
inc eax
jmp 0x10109c54
mov eax, dword [esp + 0x1c]
mov byte [eax], 0
mov byte [esp + 0x98], 0
cmp dword [esp + 0x38], 0x10
jb 0x10109c72
push dword [esp + 0x24]
call fcn.10115284
add esp, 4
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
mov dword [esp + 0x98], 0xffffffff
cmp dword [esp + 0x50], 0x10
jb 0x10109ca5
push dword [esp + 0x3c]
call fcn.10115284
add esp, 4
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x50], 0xf
mov dword [esp + 0x4c], 0
mov byte [esp + 0x3c], 0
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.10115289
mov esp, ebp
pop ebp
ret