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

Disassembly:
sub esp, 0xb4
push ebx
push ebp
push esi
mov esi, dword [ecx]
push edi
mov edi, dword [ecx + 8]
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], 0
movzx eax, byte [edi + 0x10]
mov dword [esp + 0x34], 1
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], esi
lea edx, [eax + eax*8]
mov eax, dword [esi + 4]
lea edx, [edx + 1]
test byte [eax + edx*8 + 0x28], 2
lea edx, [eax + edx*8]
mov ebx, dword [edx + 0x10]
mov eax, dword [ecx + 4]
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x30], eax
je 0x100ba454
mov ebp, dword [edx + 0x44]
jmp 0x100ba501
test byte [ebx + 0x1c], 0x80
je 0x100ba462
mov ebp, dword [ebx + 8]
jmp 0x100ba501
lea eax, [esp + 0x4c]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], eax
xorps xmm0, xmm0
lea eax, [esp + 0x40]
movlpd qword [esp + 0x8f], xmm0
mov dword [esp + 0x60], eax
mov eax, 3
or dword [esp + 0x90], eax
mov word [esp + 0x88], ax
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
movlpd qword [esp + 0x78], xmm0
movlpd qword [esp + 0x80], xmm0
movlpd qword [esp + 0x97], xmm0
mov byte [esp + 0x9f], 0
mov dword [esp + 0x8a], 0x10001
mov byte [esp + 0x8e], 5
mov dword [esp + 0x64], ebx
mov ax, word [ebx + 0x26]
mov word [esp + 0x40], ax
xor eax, eax
mov word [esp + 0x42], ax
test byte [edx + 0x28], 1
jne 0x100ba4fd
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 8]
mov dword [esp + 0x6c], eax
lea ebp, [esp + 0x58]
mov eax, ebx
mov ecx, 0x1c
add eax, ecx
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0x26]
mov ebx, eax
mov ecx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], ebx
cmp dword [eax + 0xc], 0
jne 0x100ba6ed
mov eax, 0x1020
test word [esi + 0x28], ax
jne 0x100ba6ed
mov eax, dword [esi]
mov eax, dword [eax]
mov eax, dword [eax + 0x20]
and eax, 0x8000
or eax, 0
je 0x100ba6ed
test byte [edx + 0x28], 0x4b
jne 0x100ba6ed
mov eax, dword [esp + 0x24]
test byte [eax], 0x80
jne 0x100ba6ed
test byte [edx + 0x24], 0x10
jne 0x100ba6ed
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 0x18]
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
shl eax, 4
add eax, esi
mov dword [esp + 0x1c], eax
cmp bx, 0xa
jg 0x100ba58d
xor ebx, ebx
jmp 0x100ba5b0
movsx eax, cx
cdq
push edx
push eax
call fcn.10023710
mov edx, dword [esp + 0x18]
add esp, 8
sub ax, 0x21
movzx ebx, ax
mov eax, dword [esp + 0x1c]
nop word [eax + eax]
cmp esi, eax
jae 0x100ba6ed
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
and ecx, dword [esi + 0x20]
and eax, dword [esi + 0x24]
or ecx, eax
jne 0x100ba6c9
push ecx
push ecx
mov ecx, esi
call fcn.100b6f40
add esp, 8
test eax, eax
je 0x100ba6c9
mov eax, dword [edi + 0x38]
mov ecx, 1
mov word [edi + 0x18], cx
mov dword [edi + 0x30], ecx
mov ecx, dword [esp + 0x28]
mov dword [edi + 0x20], 0
mov dword [eax], esi
mov eax, dword [esp + 0x20]
add eax, ebx
mov word [edi + 0x12], ax
cmp byte [ecx + 0x2b], 2
je 0x100ba61d
mov ecx, dword [esp + 0x24]
test dword [ecx], 0x4000
jne 0x100ba61d
add eax, 0x1c
jmp 0x100ba620
add eax, 0xffffffe7
movzx eax, ax
mov word [edi + 0x12], ax
test ax, ax
jns 0x100ba632
xor eax, eax
mov word [edi + 0x12], ax
mov eax, 0x2b
movsx ecx, bx
mov word [edi + 0x16], ax
cmp bx, ax
jl 0x100ba663
cmp ecx, 0x5c
jle 0x100ba64d
movzx eax, bx
jmp 0x100ba692
cmp ecx, 0x4a
jle 0x100ba657
lea eax, [ebx + 1]
jmp 0x100ba68f
movzx eax, byte [ecx + 0x10155625]
add ax, bx
jmp 0x100ba68f
lea eax, [ecx + 0x31]
cmp eax, 0x2b
jge 0x100ba672
mov eax, 0x2b
jmp 0x100ba692
lea eax, [ecx + 0x1f]
cmp eax, 0x2b
jge 0x100ba681
mov eax, 0x2c
jmp 0x100ba692
mov eax, 0x1015567b
sub eax, ecx
movzx eax, byte [eax]
add ax, 0x2b
movzx eax, ax
mov ecx, dword [esp + 0xc8]
mov edx, edi
mov word [edi + 0x14], ax
mov dword [edi + 0x2c], 0x4000
or ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
or eax, dword [esp + 0xcc]
mov dword [edi], ecx
mov ecx, dword [esp + 0x18]
mov dword [edi + 4], eax
call fcn.100b8de0
mov ecx, eax
mov dword [esp + 0x14], ecx
jmp 0x100ba6cd
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add esi, 0x30
mov eax, dword [esp + 0x1c]
test ecx, ecx
je 0x100ba5b0
mov eax, ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret
mov eax, dword [esp + 0x14]
test ebp, ebp
je 0x100baaf4
mov eax, dword [ebp + 0x24]
mov ebx, dword [esp + 0x10]
test eax, eax
je 0x100ba71f
mov dl, byte [edx + 0x24]
mov ecx, dword [ebx + 0x2c]
push eax
push dword [esp + 0x34]
call fcn.100ba140
add esp, 8
test eax, eax
je 0x100baac6
test dword [ebp + 0x38], 0x100
jne 0x100baac6
mov eax, dword [ebp + 8]
mov edx, ebp
mov ecx, dword [esp + 0x18]
movzx esi, word [eax]
xor eax, eax
mov dword [edi + 0x18], eax
mov word [edi + 0x1c], ax
mov dword [edi + 0x30], eax
mov byte [edi + 0x11], al
mov word [edi + 0x12], ax
mov eax, dword [esp + 0xc8]
mov dword [edi], eax
mov eax, dword [esp + 0xcc]
mov dword [edi + 4], eax
mov word [edi + 0x16], si
mov dword [edi + 0x20], ebp
push dword [ebx + 0x2c]
mov dword [esp + 0x20], esi
call fcn.100b9fb0
mov edx, dword [ebp + 0x38]
add esp, 4
mov ecx, edx
mov ebx, eax
and ecx, 3
mov dword [esp + 0x20], ebx
cmp cl, 3
jne 0x100ba7f2
mov eax, dword [esp + 0x34]
xor ecx, ecx
movzx eax, al
test ebx, ebx
mov dword [edi + 0x2c], 0x100
cmovne ecx, eax
lea eax, [esi + 0x10]
mov word [edi + 0x14], ax
mov eax, dword [esp + 0x28]
mov byte [edi + 0x11], cl
cmp byte [eax + 0x2b], 2
je 0x100ba7bc
mov eax, dword [esp + 0x24]
test dword [eax], 0x4000
je 0x100ba7c3
mov dword [edi + 0x2c], 0x2000100
mov ecx, dword [esp + 0x30]
mov edx, edi
push esi
call fcn.100b90a0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, edi
call fcn.100b8de0
mov word [edi + 0x16], si
test eax, eax
jne 0x100baaf4
mov ecx, dword [esp + 0x10]
jmp 0x100baa99
mov ecx, dword [esp + 0x10]
test dl, 0x20
je 0x100ba80e
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x100ba879
mov esi, dword [ebp + 0x40]
mov ebx, dword [ebp + 0x44]
and esi, dword [ecx + 0x38]
and ebx, dword [ecx + 0x3c]
mov dword [edi + 0x2c], 0x200
test esi, esi
jne 0x100ba82d
cmp ebx, 0x80000000
je 0x100ba844
mov eax, dword [ebp + 0x38]
test eax, 0x800
je 0x100ba873
test eax, 0x400
jne 0x100ba873
mov eax, esi
or eax, ebx
je 0x100ba879
push dword [ecx + 0x2c]
mov ecx, dword [esp + 0x30]
mov edx, ebp
call fcn.100ba340
mov ecx, dword [esp + 0x14]
add esp, 4
test eax, eax
je 0x100ba880
or dword [edi + 0x2c], eax
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov ebx, dword [esp + 0x3c]
mov esi, dword [esp + 0x38]
jmp 0x100ba880
mov eax, esi
or eax, ebx
jne 0x100ba880
mov dword [edi + 0x2c], 0x240
mov edx, dword [esp + 0x20]
test edx, edx
jne 0x100ba8ee
mov eax, dword [esp + 0x24]
test byte [eax], 0x80
jne 0x100ba8ee
cmp dword [ebp + 0x24], edx
jne 0x100ba8ee
test byte [ecx + 0x28], 2
jne 0x100ba8ee
mov eax, esi
or eax, ebx
jne 0x100baa99
test byte [ebp + 0x38], 4
jne 0x100baa99
mov edi, dword [esp + 0x28]
mov ax, word [ebp + 0x30]
cmp ax, word [edi + 0x28]
mov edi, dword [esp + 0x48]
jge 0x100baa99
mov eax, dword [esp + 0x2c]
test byte [eax + 0x28], 4
jne 0x100baa99
cmp byte [0x10165aff], dl
je 0x100baa99
mov eax, dword [eax]
mov eax, dword [eax]
test byte [eax + 0x50], 0x20
jne 0x100baa99
mov eax, dword [esp + 0x34]
xor ecx, ecx
movzx eax, al
test edx, edx
cmovne ecx, eax
mov byte [edi + 0x11], cl
movsx ecx, word [ebp + 0x30]
mov eax, ecx
shl eax, 4
sub eax, ecx
mov ecx, dword [esp + 0x28]
cdq
movsx ecx, word [ecx + 0x28]
idiv ecx
mov ecx, dword [esp + 0x1c]
inc eax
add eax, ecx
or esi, ebx
mov word [edi + 0x14], ax
je 0x100baa57
mov ebx, dword [esp + 0x10]
lea eax, [ecx + 0x10]
mov edx, dword [esp + 0x2c]
xor ecx, ecx
movzx esi, ax
mov dword [esp + 0x44], ecx
mov eax, dword [ebx + 0x2c]
mov dword [esp + 0x38], eax
cmp dword [edx + 0x5c], ecx
jle 0x100ba9f3
mov edi, dword [esp + 0x38]
xor eax, eax
mov dword [esp + 0x20], eax
mov ebx, dword [edx + 0x68]
xorps xmm0, xmm0
mov edx, dword [ebx + eax]
add ebx, eax
mov dword [esp + 0xa4], 0
lea eax, [esp + 0x50]
movlpd qword [esp + 0xac], xmm0
movlpd qword [esp + 0xb4], xmm0
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], ebp
mov dword [esp + 0xa8], 0x10065e30
mov dword [esp + 0xbc], eax
test edx, edx
je 0x100ba9b0
lea ecx, [esp + 0xa4]
call fcn.10057f20
mov ecx, dword [esp + 0x44]
cmp word [esp + 0xb8], 0
jne 0x100ba9ef
movzx eax, word [ebx + 8]
test ax, ax
jg 0x100ba9c8
add esi, eax
jmp 0x100ba9d2
dec esi
test byte [ebx + 0xc], 0x82
je 0x100ba9d2
sub esi, 0x13
mov edx, dword [esp + 0x2c]
inc ecx
mov eax, dword [esp + 0x20]
add eax, 0x30
mov dword [esp + 0x44], ecx
mov dword [esp + 0x20], eax
cmp ecx, dword [edx + 0x5c]
jl 0x100ba956
mov edi, dword [esp + 0x48]
movzx ebx, word [edi + 0x14]
movsx ecx, bx
movsx edx, si
cmp bx, si
jl 0x100baa27
lea eax, [edx + 0x31]
cmp ecx, eax
jle 0x100baa0d
mov eax, ebx
jmp 0x100baa4f
lea eax, [edx + 0x1f]
cmp ecx, eax
jle 0x100baa19
lea eax, [ebx + 1]
jmp 0x100baa4c
sub ecx, edx
movzx eax, byte [ecx + str._n_n_t_t_b_b_a_a_a]
add ax, bx
jmp 0x100baa4c
lea eax, [ecx + 0x31]
cmp edx, eax
jle 0x100baa33
movzx eax, si
jmp 0x100baa4f
lea eax, [ecx + 0x1f]
cmp edx, eax
jle 0x100baa40
inc esi
movzx eax, si
jmp 0x100baa4f
sub edx, ecx
movzx eax, byte [edx + str._n_n_t_t_b_b_a_a_a]
add ax, si
movzx eax, ax
mov ecx, dword [esp + 0x1c]
mov word [edi + 0x14], ax
push ecx
mov ecx, dword [esp + 0x34]
mov edx, edi
call fcn.100b90a0
mov ecx, dword [esp + 0x14]
add esp, 4
test byte [ecx + 0x24], 0x10
je 0x100baa76
cmp dword [ebp + 0x28], 0
jne 0x100baa89
mov ecx, dword [esp + 0x18]
mov edx, edi
call fcn.100b8de0
mov ecx, dword [esp + 0x10]
mov edx, eax
jmp 0x100baa8d
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov word [edi + 0x16], ax
test edx, edx
jne 0x100baaf2
mov esi, dword [esp + 0x18]
mov edx, ecx
push 0
push ebp
mov ecx, esi
mov byte [esi + 0x10], 0
call fcn.100b9500
add esp, 8
mov dword [esp + 0x14], eax
cmp byte [esi + 0x10], 1
jne 0x100baaca
mov ecx, dword [esp + 0x24]
or dword [ecx], 0x100
jmp 0x100baaca
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test byte [edx + 0x28], 2
je 0x100baad8
xor ebp, ebp
jmp 0x100baadb
mov ebp, dword [ebp + 0x14]
inc dword [esp + 0x34]
test eax, eax
je 0x100ba6f1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret
mov eax, edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret