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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x30
cmp byte [ebx + 0x42], 1
push esi
push edi
jne 0x100b9573
mov cl, byte [ebx + 0x40]
test cl, 2
je 0x100b9573
cmp byte [ebx + 0x45], 0
je 0x100b9573
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp + 0xc]
cmp eax, edx
mov esi, dword [ebx + 0x14]
jne 0x100b9552
cmp esi, dword [ebp + 0x10]
jne 0x100b9552
mov eax, dword [ebp + 0x18]
mov dword [eax], 0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test cl, 8
je 0x100b9573
cmp esi, dword [ebp + 0x10]
jg 0x100b9573
jl 0x100b9562
cmp eax, edx
jae 0x100b9573
mov ecx, dword [ebp + 0x18]
mov dword [ecx], 0xffffffff
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [ebp + 8]
test esi, esi
je 0x100b958b
mov eax, esi
call fcn.100c5900
mov dword [esp + 0x1c], eax
mov byte [esi + 0xb], 0
jmp 0x100b9593
mov dword [esp + 0x1c], 0
mov esi, ebx
call fcn.100b92b0
test eax, eax
jne 0x100b9985
cmp byte [ebx + 0x42], al
jne 0x100b95b6
mov edx, dword [ebp + 0x18]
mov dword [edx], 0xffffffff
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, 1
sub ecx, dword [ebp + 0x14]
mov dword [esp + 0x2c], ecx
movsx eax, byte [ebx + 0x44]
mov edi, dword [ebx + eax*4 + 0x78]
movzx esi, word [edi + 0x12]
sub esi, 1
mov dword [esp + 0x20], esi
sar esi, cl
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0
mov word [ebx + eax*2 + 0x50], si
jne 0x100b9720
mov eax, dword [edi + 0x40]
movzx ecx, word [edi + 0x14]
mov edx, dword [edi + 0x44]
mov dword [esp + 0x18], eax
mov al, byte [edi + 3]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov byte [esp + 0xf], al
mov ecx, dword [esp + 0x18]
mov dx, word [ecx + esi*2]
mov ah, dl
mov al, dh
movzx eax, ax
and eax, dword [esp + 0x24]
add eax, dword [esp + 0x28]
cmp byte [esp + 0xf], 0
je 0x100b9653
cmp byte [eax], 0x80
jb 0x100b9650
mov edi, dword [edi + 0x3c]
jmp 0x100b9640
add eax, 1
cmp eax, edi
jae 0x100b9896
cmp byte [eax], 0x80
jae 0x100b9640
add eax, 1
lea edi, [esp + 0x30]
call fcn.100a7590
mov eax, dword [esp + 0x34]
mov edx, dword [ebp + 0x10]
cmp eax, edx
mov ecx, dword [esp + 0x30]
jg 0x100b96c0
jl 0x100b9672
cmp ecx, dword [ebp + 0xc]
jae 0x100b96b5
lea eax, [esi + 1]
cmp eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
jle 0x100b96d1
mov dword [esp + 0x18], 0xffffffff
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
cmp byte [edi + 4], 0
jne 0x100b9933
movzx eax, word [edi + 0x12]
cmp ecx, eax
jl 0x100b9853
movzx edx, byte [edi + 5]
mov eax, dword [edi + 0x38]
mov eax, dword [edx + eax + 8]
jmp 0x100b986d
cmp eax, edx
jl 0x100b96ed
jg 0x100b96c0
cmp ecx, dword [ebp + 0xc]
jbe 0x100b96ed
lea eax, [esi - 1]
cmp dword [esp + 0x14], eax
mov dword [esp + 0x20], eax
jg 0x100b96e3
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x10]
lea esi, [ecx + eax]
sar esi, 1
jmp 0x100b9610
mov dword [esp + 0x18], 1
jmp 0x100b9687
movsx edx, byte [ebx + 0x44]
or byte [ebx + 0x40], 2
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x10], ecx
mov word [ebx + edx*2 + 0x50], si
cmp byte [eax + 4], 0
jne 0x100b98bf
mov dword [esp + 0x14], esi
mov edi, eax
mov ecx, esi
jmp 0x100b9699
mov ecx, dword [edi + 0x40]
mov dx, word [ecx + esi*2]
movzx ecx, word [edi + 0x14]
mov ah, dl
mov al, dh
movzx edx, byte [edi + 7]
movzx eax, ax
and eax, ecx
add eax, dword [edi + 0x44]
movzx ecx, byte [eax]
cmp ecx, edx
jg 0x100b975a
push dword [ebp + 8]
add eax, 1
push eax
push ecx
call dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x100b981b
mov dl, byte [eax + 1]
test dl, dl
js 0x100b9791
and ecx, 0x7f
movzx edx, dl
shl ecx, 7
add ecx, edx
mov edx, dword [esp + 0x10]
movzx edi, word [edx + 0xa]
cmp ecx, edi
jg 0x100b9795
mov edx, dword [ebp + 8]
push edx
add eax, 2
push eax
push ecx
call dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x18], eax
jmp 0x100b9817
mov edx, dword [esp + 0x10]
movzx ecx, byte [edx + 6]
lea edi, [ebx + 0x10]
push edi
sub eax, ecx
push eax
push edx
mov edx, dword [edx + 0x50]
call edx
mov edi, dword [edi]
add esp, 0xc
cmp edi, 2
mov dword [esp + 0x28], edi
jl 0x100b98da
lea eax, [edi + 0x12]
cdq
push edx
push eax
call fcn.100a3b10
add esp, 8
test eax, eax
mov dword [esp + 0x18], eax
je 0x100b98fd
movsx ecx, byte [ebx + 0x44]
push 2
push eax
push edi
push 0
mov edi, ebx
mov word [ebx + ecx*2 + 0x50], si
call fcn.100b8eb0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x100b9914
mov edx, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x28]
push edx
push edi
push eax
call dword [esp + 0x28]
add esp, 0xc
push edi
mov dword [esp + 0x1c], eax
call fcn.100a3e10
add esp, 4
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
test eax, eax
jge 0x100b982c
lea ecx, [esi + 1]
mov dword [esp + 0x14], ecx
jmp 0x100b9839
jle 0x100b9957
lea edx, [esi - 1]
mov dword [esp + 0x20], edx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
cmp ecx, eax
jg 0x100b968f
lea esi, [eax + ecx]
sar esi, 1
jmp 0x100b9720
mov edx, dword [edi + 0x40]
mov ax, word [edx + ecx*2]
mov dh, al
mov dl, ah
movzx eax, dx
movzx edx, word [edi + 0x14]
and eax, edx
mov edx, dword [edi + 0x38]
mov eax, dword [eax + edx]
movsx edx, byte [ebx + 0x44]
bswap eax
push eax
mov eax, ebx
mov word [ebx + edx*2 + 0x50], cx
call fcn.100b9230
mov edi, eax
add esp, 4
test edi, edi
jne 0x100b9979
mov ecx, dword [esp + 0x2c]
jmp 0x100b95c2
push 0x1015aca8
push 0xf59a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100a5cf0
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x18]
xor edi, edi
mov dword [eax], 0
and byte [ebx + 0x40], 0xf9
mov word [ebx + 0x22], di
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push 0x1015aca8
push 0xf5e3
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100a5cf0
add esp, 0x14
jmp 0x100b9974
and byte [ebx + 0x40], 0xf9
mov edi, 7
mov word [ebx + 0x22], 0
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
call fcn.100a3e10
add esp, 4
and byte [ebx + 0x40], 0xf9
mov word [ebx + 0x22], 0
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsx edx, byte [ebx + 0x44]
mov eax, dword [ebp + 0x18]
mov ecx, dword [esp + 0x18]
mov word [ebx + edx*2 + 0x50], si
xor edi, edi
mov dword [eax], ecx
and byte [ebx + 0x40], 0xf9
mov word [ebx + 0x22], di
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x18]
mov ecx, dword [ebp + 8]
mov dword [edx], 0
movsx eax, byte [ebx + 0x44]
xor edi, edi
mov word [ebx + eax*2 + 0x50], si
cmp byte [ecx + 0xb], 0
je 0x100b9979
mov edi, 0xb
and byte [ebx + 0x40], 0xf9
mov word [ebx + 0x22], 0
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret