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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov esi, ecx
mov dword [esp + 0x10], eax
push edi
mov ebx, edx
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], ebx
test byte [esi + 1], 0x20
mov edi, dword [esi + 8]
mov dword [esp + 0x18], edi
je 0x1003e197
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1003e144
nop dword [eax]
cmp ecx, esi
je 0x1003e13d
test edx, edx
je 0x1003e17f
cmp dword [ecx + 0x40], edx
je 0x1003e17f
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x1003e130
and byte [esi + 1], 0xdf
cmp dword [esp + 0x14], 0
je 0x1003e197
cmp byte [esi + 0x44], 0
jge 0x1003e197
push 0x10155e9c
push 0x12ea8
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x1003e144
push esi
call fcn.100346e0
add esp, 4
test eax, eax
je 0x1003e148
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 3
jb 0x1003e1b0
mov ecx, esi
call fcn.10039660
test eax, eax
je 0x1003e1b0
cmp eax, 0x10
jne 0x1003e7bc
mov eax, dword [esi + 0x70]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x1003e327
cmp byte [edi + 0xb], 0
je 0x1003e20d
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0x40]
mov edx, dword [ebx + 8]
mov edi, dword [ebx + 0xc]
mov byte [eax + 0xb], 0
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
test eax, eax
je 0x1003e20a
mov ebx, dword [esp + 0x18]
test byte [eax + 1], 0x10
je 0x1003e1ff
mov byte [ebx + 0xb], 1
cmp dword [eax + 0x40], ecx
jne 0x1003e1ff
cmp dword [eax + 0x20], edx
jne 0x1003e1ff
cmp dword [eax + 0x24], edi
jne 0x1003e1ff
mov byte [eax], 1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x1003e1e3
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
test byte [esi + 1], 2
je 0x1003e2bd
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x20]
jne 0x1003e2bd
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x24]
jne 0x1003e2bd
cmp word [esi + 0x32], 0
je 0x1003e2e7
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esi + 0x2c], eax
jne 0x1003e2e7
movzx edi, word [esi + 0x30]
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x74]
lea eax, [edx + edi]
cmp eax, dword [ecx + 0x3c]
ja 0x1003e293
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e293
cmp edi, dword [esp + 0x24]
jne 0x1003e283
push edi
push 0
push ebx
call fcn.1003de00
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ecx, esi
call fcn.1003dfb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10155e9c
push 0x12e57
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e2e7
lea eax, [esp + 0x14]
shr edx, 3
push eax
push dword [ebx + 0xc]
and edx, 1
mov ecx, esi
push dword [ebx + 8]
call fcn.100399f0
add esp, 0xc
test eax, eax
jne 0x1003e7bc
mov edi, dword [esi + 0x74]
cmp dword [edi + 0x14], 0
jge 0x1003e430
cmp byte [esi], 1
jbe 0x1003e421
push 0x10155e9c
push 0x12f23
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e2e7
test dl, 2
jne 0x1003e39d
movzx ecx, word [ebx + 0x18]
test cx, cx
je 0x1003e36b
mov dword [esp + 0x30], eax
lea edx, [esp + 0x30]
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x14]
mov word [esp + 0x44], cx
mov ecx, esi
push eax
mov byte [esp + 0x4a], 0
mov byte [esp + 0x4e], 0
call fcn.10039c90
add esp, 4
jmp 0x1003e38b
lea eax, [esp + 0x14]
mov ecx, esi
push eax
mov eax, edx
mov edx, dword [ebx]
shr eax, 3
and eax, 1
push eax
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.100347e0
add esp, 0x10
test eax, eax
jne 0x1003e7bc
cmp dword [esp + 0x14], eax
jne 0x1003e2e7
mov ecx, esi
call fcn.10038f40
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp dword [esi + 0x20], ecx
jne 0x1003e2e7
cmp dword [esi + 0x24], eax
jne 0x1003e2e7
movzx edi, word [esi + 0x30]
mov edx, dword [esi + 0x28]
mov eax, dword [ebx]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi + 0x74]
mov dword [esp + 0x40], eax
lea eax, [edx + edi]
mov dword [esp + 0x50], 0
cmp eax, dword [ecx + 0x3c]
ja 0x1003e293
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e293
cmp edi, dword [ebx + 8]
jne 0x1003e40f
push edi
lea eax, [esp + 0x34]
push 0
push eax
call fcn.1003de00
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.1003dfb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.10035cd0
test eax, eax
jne 0x1003e7bc
test byte [ebp + 8], 0x80
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x24], eax
je 0x1003e4d0
mov eax, dword [ecx + 0x58]
mov edx, eax
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x28], eax
cmp eax, 4
jge 0x1003e473
mov edx, 4
mov dword [esp + 0x20], 4
mov dword [esp + 0x28], edx
cmp byte [ecx + 0x11], 0
je 0x1003e4f4
movzx eax, word [edi + 0xe]
cmp edx, eax
jbe 0x1003e4f4
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x30]
push eax
mov eax, dword [edi + 0x50]
push ebx
push edi
call eax
movzx eax, word [esp + 0x4c]
add esp, 0xc
cmp dword [esp + 0x3c], eax
je 0x1003e4f4
mov edx, dword [esp + 0x28]
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push dword [edi + 4]
mov edx, dword [ebx + edx - 4]
push 3
mov ecx, dword [eax + 4]
bswap edx
call fcn.100349b0
mov ebx, dword [esp + 0x28]
add esp, 0xc
test ebx, ebx
jne 0x1003e7ba
jmp 0x1003e4f4
lea ecx, [esp + 0x28]
mov edx, eax
push ecx
push ebx
mov ecx, edi
call fcn.1003b290
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x1003e7ba
mov eax, dword [esp + 0x28]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x14], 0
movzx eax, word [esi + 0x46]
mov ecx, eax
mov dword [esp + 0x28], ecx
jne 0x1003e6d8
movzx eax, word [edi + 0x18]
cmp ecx, eax
jb 0x1003e53b
push 0x10155e9c
push 0x12f49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x1003e55c
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x1003e55c
cmp dword [edx + 0x68], 0
je 0x1003e58b
call fcn.1002e6b0
jmp 0x1003e581
mov ebx, dword [edx + 0x2c]
test ebx, ebx
jne 0x1003e7ba
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x1003e57c
call fcn.10030260
jmp 0x1003e581
call fcn.100301d0
mov ebx, eax
test ebx, ebx
jne 0x1003e7ba
mov ecx, dword [esp + 0x28]
mov eax, dword [edi + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [edi + 0x1a]
movzx ebx, cx
and ebx, eax
add ebx, dword [edi + 0x38]
cmp byte [edi + 8], 0
jne 0x1003e5b4
mov ecx, dword [esp + 0x24]
mov eax, dword [ebx]
mov dword [ecx], eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [edi + 0x50]
push ebx
push edi
call eax
mov cx, word [esp + 0x4c]
add esp, 0xc
movzx eax, cx
cmp eax, dword [esp + 0x3c]
je 0x1003e5e9
lea eax, [esp + 0x30]
mov edx, ebx
push eax
mov ecx, edi
call fcn.1003b120
mov cx, word [esp + 0x44]
add esp, 4
jmp 0x1003e5eb
xor eax, eax
and byte [esi + 1], 0xfb
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x42]
cmp eax, edx
jne 0x1003e6b2
movzx eax, cx
cmp eax, dword [esp + 0x3c]
jne 0x1003e6ad
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x1003e62a
movzx eax, word [edi + 0x10]
cmp edx, eax
jge 0x1003e6ad
mov eax, dword [edi + 0x38]
movzx ecx, byte [edi + 9]
add eax, 0xa
add eax, ecx
cmp ebx, eax
jae 0x1003e664
push 0x10155e9c
push 0x12f64
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [ebx + edx]
cmp eax, dword [edi + 0x3c]
jbe 0x1003e696
push 0x10155e9c
push 0x12f67
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021700
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push dword [esp + 0x28]
push ebx
call fcn.1012ad80
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [esp + 0x42]
mov edx, dword [esp + 0x28]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, edi
call fcn.1003b660
mov ebx, dword [esp + 0x24]
add esp, 8
test ebx, ebx
jne 0x1003e7ba
mov ecx, dword [esp + 0x28]
jmp 0x1003e6ed
jge 0x1003e6ed
cmp word [edi + 0x18], 0
jbe 0x1003e6ed
inc eax
and byte [esi + 1], 0xfd
mov word [esi + 0x46], ax
movzx ecx, ax
push 0
push 0
push dword [esp + 0x28]
mov edx, ecx
mov ecx, edi
push dword [esp + 0x30]
call fcn.1003b780
mov ebx, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x32], ax
cmp byte [edi + 0xc], al
je 0x1003e7ba
and byte [esi + 1], 0xfd
mov ecx, esi
call fcn.1003dbb0
test byte [ebp + 8], 2
mov ebx, eax
mov eax, dword [esi + 0x74]
mov dword [esp + 0x28], ebx
mov byte [eax + 0xc], 0
mov byte [esi], 1
je 0x1003e7ba
test ebx, ebx
jne 0x1003e7ba
mov al, byte [esi + 0x44]
test al, al
js 0x1003e779
jle 0x1003e76a
lea edi, [esi + 0x78]
nop dword [eax + eax]
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x48]
call fcn.1002fcc0
movsx eax, byte [esi + 0x44]
lea edi, [edi + 4]
inc ebx
cmp ebx, eax
jl 0x1003e750
mov ebx, dword [esp + 0x28]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x48]
call fcn.1002fcc0
mov byte [esi + 0x44], 0xff
cmp dword [esi + 0x70], 0
mov edi, dword [esp + 0x2c]
je 0x1003e7ab
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.1001e4e0
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
jne 0x1003e79d
lea ebx, [eax + 7]
jmp 0x1003e7ab
push dword [edi + 8]
push dword [edi]
push eax
call fcn.1012ad80
add esp, 0xc
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov byte [esi], 3
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret