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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
mov ebx, dword [ebp + 8]
mov dword [esp + 0xc], edx
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edi
cmp ebx, 2
jae 0x100f5b12
xor ecx, ecx
jmp 0x100f5b42
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [edi + 0x28]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
mov eax, dword [0x1029d2a4]
xor ecx, ecx
sub esi, edx
xor edx, edx
div dword [edi + 0x24]
dec eax
cmp esi, eax
sete cl
add ecx, 2
add ecx, esi
mov esi, dword [ebp + 0xc]
cmp ecx, ebx
je 0x100f5e1f
mov eax, dword [0x1029d2a4]
xor edx, edx
div dword [edi + 0x24]
inc eax
cmp ebx, eax
je 0x100f5e1f
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x38]
mov eax, dword [eax + 0x24]
bswap eax
test eax, eax
jne 0x100f5b7b
mov eax, 0x65
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x30]
mov edx, ebx
push eax
lea eax, [esp + 0x1c]
mov ecx, edi
push eax
call fcn.100f2a60
add esp, 8
test eax, eax
jne 0x100f5e7e
mov eax, dword [esp + 0x18]
cmp al, 1
jne 0x100f5bcb
push 0x10279dac
push 0x104ca
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.100e2740
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 2
jne 0x100f5c5c
test esi, esi
jne 0x100f5e7c
push 1
lea eax, [esp + 0x38]
mov ecx, edi
push ebx
push eax
lea edx, [esp + 0x24]
call fcn.100f7d10
add esp, 0xc
test eax, eax
jne 0x100f5e7e
mov edx, dword [esp + 0x18]
test edx, edx
je 0x100f5e23
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100f5c50
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101d5d50
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
add esp, 0x10
jmp 0x100f5e23
mov ecx, edx
call fcn.100e8b70
jmp 0x100f5e23
lea eax, [esp + 0x10]
mov edx, ebx
push 0
push eax
mov ecx, edi
call fcn.100f3cc0
add esp, 8
test eax, eax
jne 0x100f5e7e
mov ecx, dword [esp + 0x14]
test esi, esi
setne dl
cmovne ecx, eax
dec dl
mov dword [esp + 0x28], ecx
and dl, 2
mov dword [esp + 0x2c], edx
push edx
push ecx
lea eax, [esp + 0x2c]
mov ecx, edi
push eax
lea edx, [esp + 0x2c]
call fcn.100f7d10
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
test esi, esi
jne 0x100f5db4
mov edx, dword [esp + 0x20]
test edx, edx
je 0x100f5d0e
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100f5d07
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101d5d50
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov edi, dword [esp + 0x2c]
add esp, 0x10
jmp 0x100f5d0e
mov ecx, edx
call fcn.100e8b70
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
test esi, esi
je 0x100f5d2b
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
cmp eax, dword [esp + 0x14]
ja 0x100f5c90
mov edx, dword [esp + 0x10]
mov ecx, edi
push esi
push eax
push dword [esp + 0x38]
push dword [esp + 0x24]
call fcn.100f5900
mov edi, eax
add esp, 0x10
mov eax, dword [esp + 0x10]
mov dword [esp + 0x30], edi
test eax, eax
je 0x100f5da7
mov edx, dword [eax + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100f5da0
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101d5d50
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [ebp + 0xc]
add esp, 0x10
mov edi, dword [esp + 0x30]
jmp 0x100f5da7
mov ecx, edx
call fcn.100e8b70
test edi, edi
je 0x100f5e1f
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x10]
test edx, edx
je 0x100f5e16
mov edx, dword [edx + 0x48]
test byte [edx + 0x1c], 0x20
je 0x100f5e0f
mov eax, dword [edx + 0x14]
dec dword [eax + 0x78]
mov ecx, dword [eax + 0x88]
mov dword [edx + 0x10], ecx
mov esi, dword [eax + 0x3c]
mov dword [eax + 0x88], edx
push dword [edx + 4]
mov ecx, dword [edx + 0x18]
mov eax, dword [eax + 0x98]
dec ecx
mov edi, dword [esi]
cdq
push edx
push eax
push 0
push ecx
call fcn.101d5d50
push edx
push eax
mov eax, dword [edi + 0x48]
push esi
call eax
mov esi, dword [esp + 0x44]
add esp, 0x10
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edx
call fcn.100e8b70
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
jne 0x100f5e7c
mov edi, dword [esp + 0x1c]
xor edx, edx
mov eax, dword [0x1029d2a4]
div dword [edi + 0x24]
inc eax
mov dword [esp + 0x1c], eax
dec ebx
cmp ebx, eax
je 0x100f5e36
cmp ebx, 2
jae 0x100f5e44
xor eax, eax
jmp 0x100f5e6d
mov eax, 0xcccccccd
lea esi, [ebx - 2]
mul dword [edi + 0x28]
mov eax, esi
mov ecx, edx
xor edx, edx
shr ecx, 2
inc ecx
div ecx
sub esi, edx
lea eax, [esi + 2]
sub eax, dword [esp + 0x1c]
neg eax
sbb eax, eax
add eax, 3
add eax, esi
cmp eax, ebx
mov eax, dword [esp + 0x1c]
je 0x100f5e36
mov byte [edi + 0x13], 1
mov dword [edi + 0x30], ebx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret