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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov dword [ebp - 0xc], edi
cmp byte [edi], 0
jne 0x100297b6
mov dl, byte [edi + 1]
test dl, 2
je 0x100297b6
mov ecx, dword [edi + 0x20]
mov ebx, dword [ebp + 8]
mov eax, dword [edi + 0x24]
cmp ecx, ebx
jne 0x10029759
cmp eax, dword [ebp + 0xc]
jne 0x1002975c
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, dword [ebp + 0xc]
jg 0x100297b6
jl 0x10029764
cmp ecx, ebx
jae 0x100297b6
test dl, 8
jne 0x100297ca
add ecx, 1
adc eax, 0
cmp ecx, ebx
jne 0x100297b6
cmp eax, dword [ebp + 0xc]
jne 0x100297b6
mov eax, dword [ebp + 0x10]
push 0
push edi
mov dword [eax], 0
call fcn.10029f60
add esp, 8
test eax, eax
jne 0x100297ad
mov ecx, edi
call fcn.10028be0
cmp dword [edi + 0x20], ebx
jne 0x100297b6
mov eax, dword [ebp + 0xc]
cmp dword [edi + 0x24], eax
jne 0x100297b6
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 0x65
jne 0x100299c6
mov ecx, edi
call fcn.10029320
test eax, eax
je 0x100297dc
cmp eax, 0x10
jne 0x100299c6
mov eax, dword [ebp + 0x10]
mov dword [eax], 0xffffffff
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
lea ebx, [edi + 0x74]
sub eax, esi
mov dword [ebp - 0x14], eax
nop dword [eax]
mov edx, dword [ebx]
mov ecx, eax
xor ebx, ebx
mov dword [ebp - 8], edx
movzx edi, word [edx + 0x18]
mov eax, dword [edx + 0x40]
dec edi
mov esi, edi
mov dword [ebp - 0x10], eax
sar esi, cl
mov cl, byte [edx + 2]
mov byte [ebp - 1], cl
nop
mov ax, word [eax + esi*2]
mov ch, al
mov cl, ah
movzx eax, word [edx + 0x1a]
movzx ecx, cx
and ecx, eax
add ecx, dword [edx + 0x44]
cmp byte [ebp - 1], 0
je 0x10029841
cmp byte [ecx], 0x80
jb 0x10029840
mov eax, dword [edx + 0x3c]
inc ecx
cmp ecx, eax
jae 0x10029951
cmp byte [ecx], 0x80
jae 0x10029832
inc ecx
lea edx, [ebp - 0x20]
call fcn.10013920
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
cmp ecx, dword [ebp + 0xc]
jg 0x10029869
jl 0x1002985d
mov edx, dword [ebp + 8]
cmp eax, edx
jae 0x1002986c
lea ebx, [esi + 1]
cmp ebx, edi
jle 0x1002987e
or eax, 0xffffffff
jmp 0x10029890
mov edx, dword [ebp + 8]
cmp ecx, dword [ebp + 0xc]
jl 0x100298b4
jg 0x10029877
cmp eax, edx
jbe 0x100298b4
lea edi, [esi - 1]
cmp ebx, edi
jg 0x1002988b
mov edx, dword [ebp - 8]
lea esi, [edi + ebx]
mov eax, dword [ebp - 0x10]
sar esi, 1
jmp 0x10029810
mov eax, 1
mov edx, dword [ebp - 8]
mov edi, dword [ebp - 0xc]
cmp byte [edx + 8], 0
je 0x100298ca
mov ecx, dword [ebp + 0x10]
mov word [edi + 0x46], si
mov dword [ecx], eax
xor eax, eax
xor ecx, ecx
mov word [edi + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp - 0xc]
mov edx, dword [ebp - 8]
mov word [edi + 0x46], si
cmp byte [edx + 8], 0
jne 0x100299ab
mov ebx, esi
movzx eax, word [edx + 0x18]
cmp ebx, eax
jl 0x100298df
movzx ecx, byte [edx + 9]
mov eax, dword [edx + 0x38]
mov edx, dword [ecx + eax + 8]
jmp 0x100298f9
mov eax, dword [edx + 0x40]
mov ax, word [eax + ebx*2]
mov ch, al
mov cl, ah
movzx eax, word [edx + 0x1a]
movzx ecx, cx
and ecx, eax
mov eax, dword [edx + 0x38]
mov edx, dword [ecx + eax]
mov al, byte [edi + 0x44]
mov esi, dword [edi + 0x14]
movzx ecx, bx
mov word [edi + 0x46], cx
cmp al, 0x13
jge 0x1002997b
and byte [edi + 1], 0xf9
xor ebx, ebx
movsx eax, al
mov word [edi + 0x32], bx
lea ebx, [edi + 0x74]
bswap edx
mov word [edi + eax*2 + 0x48], cx
movsx ecx, byte [edi + 0x44]
mov eax, dword [ebx]
mov dword [edi + ecx*4 + 0x78], eax
xor eax, eax
inc byte [edi + 0x44]
mov ecx, esi
mov word [edi + 0x46], ax
movzx eax, byte [edi + 2]
push eax
push edi
push ebx
call fcn.10025c70
add esp, 0xc
test eax, eax
jne 0x1002999e
mov eax, dword [ebp - 0x14]
jmp 0x100297f0
push 0x1011a43c
push 0x11843
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10011fc0
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x1011a43c
push 0x116bb
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10011fc0
add esp, 0x14
mov eax, 0xb
xor ecx, ecx
mov word [edi + 0x32], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or byte [edi + 1], 2
mov dword [edi + 0x20], eax
xor eax, eax
mov word [edi + 0x32], ax
mov eax, dword [ebp + 0x10]
mov dword [edi + 0x24], ecx
mov dword [eax], 0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret