Function at 0x1003e130
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 0x1003e1d7
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1003e184
nop dword [eax]
cmp ecx, esi
je 0x1003e17d
test edx, edx
je 0x1003e1bf
cmp dword [ecx + 0x40], edx
je 0x1003e1bf
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x1003e170
and byte [esi + 1], 0xdf
cmp dword [esp + 0x14], 0
je 0x1003e1d7
cmp byte [esi + 0x44], 0
jge 0x1003e1d7
push 0x10155e9c
push 0x12ea8
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021710
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x1003e184
push esi
call fcn.10034710
add esp, 4
test eax, eax
je 0x1003e188
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 3
jb 0x1003e1f0
mov ecx, esi
call fcn.10039690
test eax, eax
je 0x1003e1f0
cmp eax, 0x10
jne 0x1003e7fc
mov eax, dword [esi + 0x70]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x1003e367
cmp byte [edi + 0xb], 0
je 0x1003e24d
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 0x1003e24a
mov ebx, dword [esp + 0x18]
test byte [eax + 1], 0x10
je 0x1003e23f
mov byte [ebx + 0xb], 1
cmp dword [eax + 0x40], ecx
jne 0x1003e23f
cmp dword [eax + 0x20], edx
jne 0x1003e23f
cmp dword [eax + 0x24], edi
jne 0x1003e23f
mov byte [eax], 1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x1003e223
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebp + 8]
test byte [esi + 1], 2
je 0x1003e2fd
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x20]
jne 0x1003e2fd
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x24]
jne 0x1003e2fd
cmp word [esi + 0x32], 0
je 0x1003e327
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esi + 0x2c], eax
jne 0x1003e327
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 0x1003e2d3
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e2d3
cmp edi, dword [esp + 0x24]
jne 0x1003e2c3
push edi
push 0
push ebx
call fcn.1003de40
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ecx, esi
call fcn.1003dff0
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.10021710
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e327
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.10039a20
add esp, 0xc
test eax, eax
jne 0x1003e7fc
mov edi, dword [esi + 0x74]
cmp dword [edi + 0x14], 0
jge 0x1003e470
cmp byte [esi], 1
jbe 0x1003e461
push 0x10155e9c
push 0x12f23
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021710
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e327
test dl, 2
jne 0x1003e3dd
movzx ecx, word [ebx + 0x18]
test cx, cx
je 0x1003e3ab
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.10039cd0
add esp, 4
jmp 0x1003e3cb
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.10034810
add esp, 0x10
test eax, eax
jne 0x1003e7fc
cmp dword [esp + 0x14], eax
jne 0x1003e327
mov ecx, esi
call fcn.10038f70
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp dword [esi + 0x20], ecx
jne 0x1003e327
cmp dword [esi + 0x24], eax
jne 0x1003e327
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 0x1003e2d3
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e2d3
cmp edi, dword [ebx + 8]
jne 0x1003e44f
push edi
lea eax, [esp + 0x34]
push 0
push eax
call fcn.1003de40
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.1003dff0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, edi
call fcn.10035d00
test eax, eax
jne 0x1003e7fc
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 0x1003e510
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 0x1003e4b3
mov edx, 4
mov dword [esp + 0x20], 4
mov dword [esp + 0x28], edx
cmp byte [ecx + 0x11], 0
je 0x1003e534
movzx eax, word [edi + 0xe]
cmp edx, eax
jbe 0x1003e534
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 0x1003e534
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.100349e0
mov ebx, dword [esp + 0x28]
add esp, 0xc
test ebx, ebx
jne 0x1003e7fa
jmp 0x1003e534
lea ecx, [esp + 0x28]
mov edx, eax
push ecx
push ebx
mov ecx, edi
call fcn.1003b2d0
mov ebx, eax
add esp, 8
test ebx, ebx
jne 0x1003e7fa
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 0x1003e718
movzx eax, word [edi + 0x18]
cmp ecx, eax
jb 0x1003e57b
push 0x10155e9c
push 0x12f49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021710
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 0x1003e59c
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x1003e59c
cmp dword [edx + 0x68], 0
je 0x1003e5cb
call fcn.1002e6e0
jmp 0x1003e5c1
mov ebx, dword [edx + 0x2c]
test ebx, ebx
jne 0x1003e7fa
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x1003e5bc
call fcn.10030290
jmp 0x1003e5c1
call fcn.10030200
mov ebx, eax
test ebx, ebx
jne 0x1003e7fa
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 0x1003e5f4
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 0x1003e629
lea eax, [esp + 0x30]
mov edx, ebx
push eax
mov ecx, edi
call fcn.1003b160
mov cx, word [esp + 0x44]
add esp, 4
jmp 0x1003e62b
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 0x1003e6f2
movzx eax, cx
cmp eax, dword [esp + 0x3c]
jne 0x1003e6ed
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x1003e66a
movzx eax, word [edi + 0x10]
cmp edx, eax
jge 0x1003e6ed
mov eax, dword [edi + 0x38]
movzx ecx, byte [edi + 9]
add eax, 0xa
add eax, ecx
cmp ebx, eax
jae 0x1003e6a4
push 0x10155e9c
push 0x12f64
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021710
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 0x1003e6d6
push 0x10155e9c
push 0x12f67
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021710
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.1012b000
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.1003b6a0
mov ebx, dword [esp + 0x24]
add esp, 8
test ebx, ebx
jne 0x1003e7fa
mov ecx, dword [esp + 0x28]
jmp 0x1003e72d
jge 0x1003e72d
cmp word [edi + 0x18], 0
jbe 0x1003e72d
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.1003b7c0
mov ebx, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x32], ax
cmp byte [edi + 0xc], al
je 0x1003e7fa
and byte [esi + 1], 0xfd
mov ecx, esi
call fcn.1003dbf0
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 0x1003e7fa
test ebx, ebx
jne 0x1003e7fa
mov al, byte [esi + 0x44]
test al, al
js 0x1003e7b9
jle 0x1003e7aa
lea edi, [esi + 0x78]
nop dword [eax + eax]
mov ecx, dword [edi]
mov ecx, dword [ecx + 0x48]
call fcn.1002fcf0
movsx eax, byte [esi + 0x44]
lea edi, [edi + 4]
inc ebx
cmp ebx, eax
jl 0x1003e790
mov ebx, dword [esp + 0x28]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x48]
call fcn.1002fcf0
mov byte [esi + 0x44], 0xff
cmp dword [esi + 0x70], 0
mov edi, dword [esp + 0x2c]
je 0x1003e7eb
push dword [edi + 0xc]
push dword [edi + 8]
call fcn.1001e500
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
jne 0x1003e7dd
lea ebx, [eax + 7]
jmp 0x1003e7eb
push dword [edi + 8]
push dword [edi]
push eax
call fcn.1012b000
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