Function at 0x1003de50
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 + 0x2c], 0
mov dword [esp + 0x28], ebx
test byte [esi + 1], 0x20
mov edi, dword [esi + 8]
mov dword [esp + 0x18], edi
je 0x1003def7
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x1003dea4
nop dword [eax]
cmp ecx, esi
je 0x1003de9d
test edx, edx
je 0x1003dedf
cmp dword [ecx + 0x40], edx
je 0x1003dedf
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x1003de90
and byte [esi + 1], 0xdf
cmp dword [esp + 0x14], 0
je 0x1003def7
cmp byte [esi + 0x44], 0
jge 0x1003def7
push 0x10156d84
push 0x12ea8
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x1003dea4
push esi
call fcn.10034420
add esp, 4
test eax, eax
je 0x1003dea8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 3
jb 0x1003df16
mov ecx, esi
call fcn.100392e0
mov edi, eax
test edi, edi
je 0x1003df12
cmp edi, 0x10
jne 0x1003e52a
mov edi, dword [esp + 0x18]
mov eax, dword [esi + 0x70]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x1003e096
cmp byte [edi + 0xb], 0
je 0x1003df7a
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 0x1003df77
mov ebx, dword [esp + 0x18]
nop dword [eax]
test byte [eax + 1], 0x10
je 0x1003df6c
mov byte [ebx + 0xb], 1
cmp dword [eax + 0x40], ecx
jne 0x1003df6c
cmp dword [eax + 0x20], edx
jne 0x1003df6c
cmp dword [eax + 0x24], edi
jne 0x1003df6c
mov byte [eax], 1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x1003df50
mov ebx, dword [esp + 0x28]
mov edx, dword [ebp + 8]
test byte [esi + 1], 2
je 0x1003e02a
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x20]
jne 0x1003e02a
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x24]
jne 0x1003e02a
cmp word [esi + 0x32], 0
je 0x1003e056
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esi + 0x2c], eax
jne 0x1003e056
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 0x1003e000
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e000
cmp edi, dword [esp + 0x24]
jne 0x1003dff0
push edi
push 0
push ebx
call fcn.1003db60
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ecx, esi
call fcn.1003dd10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10156d84
push 0x12e57
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e056
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.10039680
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x1003e52a
mov ebx, dword [esi + 0x74]
cmp dword [ebx + 0x14], 0
jge 0x1003e19f
cmp byte [esi], 1
jbe 0x1003e190
push 0x10156d84
push 0x12f23
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x1003e056
test dl, 2
jne 0x1003e10c
movzx ecx, word [ebx + 0x18]
test cx, cx
je 0x1003e0da
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.10039920
add esp, 4
jmp 0x1003e0fa
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.10034520
add esp, 0x10
test eax, eax
jne 0x1003e52c
cmp dword [esp + 0x14], eax
jne 0x1003e056
mov ecx, esi
call fcn.10038c00
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp dword [esi + 0x20], ecx
jne 0x1003e056
cmp dword [esi + 0x24], eax
jne 0x1003e056
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 0x1003e000
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x1003e000
cmp edi, dword [ebx + 8]
jne 0x1003e17e
push edi
lea eax, [esp + 0x34]
push 0
push eax
call fcn.1003db60
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.1003dd10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.100358c0
test eax, eax
jne 0x1003e52c
test byte [ebp + 8], 0x80
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x54]
mov dword [esp + 0x20], eax
je 0x1003e23a
mov eax, dword [ecx + 0x58]
mov edx, eax
mov dword [esp + 0x1c], 0
mov edi, eax
mov dword [esp + 0x24], eax
cmp eax, 4
jge 0x1003e1de
mov edx, 4
mov dword [esp + 0x24], 4
mov edi, edx
cmp byte [ecx + 0x11], 0
je 0x1003e261
movzx eax, word [ebx + 0xe]
cmp edx, eax
jbe 0x1003e261
lea eax, [esp + 0x30]
push eax
push dword [esp + 0x24]
mov eax, dword [ebx + 0x50]
push ebx
call eax
movzx eax, word [esp + 0x4c]
add esp, 0xc
cmp dword [esp + 0x3c], eax
je 0x1003e261
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x24]
push dword [ebx + 4]
push 3
mov edx, dword [eax + edi - 4]
mov eax, dword [esp + 0x24]
bswap edx
mov ecx, dword [eax + 4]
call fcn.100346f0
mov edi, dword [esp + 0x28]
add esp, 0xc
test edi, edi
jne 0x1003e52a
jmp 0x1003e261
lea ecx, [esp + 0x2c]
mov edx, eax
push ecx
push dword [esp + 0x2c]
mov ecx, ebx
call fcn.1003aee0
mov edi, eax
add esp, 8
test edi, edi
jne 0x1003e52a
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x14], 0
movzx eax, word [esi + 0x46]
mov ecx, eax
mov dword [esp + 0x2c], ecx
jne 0x1003e445
movzx eax, word [ebx + 0x18]
cmp ecx, eax
jb 0x1003e2a8
push 0x10156d84
push 0x12f49
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x1003e2c9
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x1003e2c9
cmp dword [edx + 0x68], 0
je 0x1003e2f8
call fcn.1002e3e0
jmp 0x1003e2ee
mov edi, dword [edx + 0x2c]
test edi, edi
jne 0x1003e52a
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x1003e2e9
call fcn.1002ffb0
jmp 0x1003e2ee
call fcn.1002ff20
mov edi, eax
test edi, edi
jne 0x1003e52a
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx + 0x40]
mov ax, word [eax + ecx*2]
mov ch, al
mov cl, ah
movzx eax, word [ebx + 0x1a]
movzx edi, cx
and edi, eax
add edi, dword [ebx + 0x38]
cmp byte [ebx + 8], 0
jne 0x1003e321
mov ecx, dword [esp + 0x20]
mov eax, dword [edi]
mov dword [ecx], eax
lea eax, [esp + 0x30]
push eax
mov eax, dword [ebx + 0x50]
push edi
push ebx
call eax
mov cx, word [esp + 0x4c]
add esp, 0xc
movzx eax, cx
cmp eax, dword [esp + 0x3c]
je 0x1003e356
lea eax, [esp + 0x30]
mov edx, edi
push eax
mov ecx, ebx
call fcn.1003ad70
mov cx, word [esp + 0x44]
add esp, 4
jmp 0x1003e358
xor eax, eax
and byte [esi + 1], 0xfb
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x42]
cmp eax, edx
jne 0x1003e41f
movzx eax, cx
cmp eax, dword [esp + 0x3c]
jne 0x1003e41a
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x1003e397
movzx eax, word [ebx + 0x10]
cmp edx, eax
jge 0x1003e41a
mov eax, dword [ebx + 0x38]
movzx ecx, byte [ebx + 9]
add eax, 0xa
add eax, ecx
cmp edi, eax
jae 0x1003e3d1
push 0x10156d84
push 0x12f64
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [edi + edx]
cmp eax, dword [ebx + 0x3c]
jbe 0x1003e403
push 0x10156d84
push 0x12f67
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10021490
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push dword [esp + 0x24]
push edi
call fcn.1012be10
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 + 0x2c]
lea ecx, [esp + 0x1c]
push ecx
push eax
mov ecx, ebx
call fcn.1003b2b0
mov edi, dword [esp + 0x24]
add esp, 8
test edi, edi
jne 0x1003e52a
mov ecx, dword [esp + 0x2c]
jmp 0x1003e45a
jge 0x1003e45a
cmp word [ebx + 0x18], 0
jbe 0x1003e45a
inc eax
and byte [esi + 1], 0xfd
mov word [esi + 0x46], ax
movzx ecx, ax
push 0
push 0
push dword [esp + 0x2c]
mov edx, ecx
mov ecx, ebx
push dword [esp + 0x2c]
call fcn.1003b3d0
mov edi, eax
add esp, 0x10
xor eax, eax
mov word [esi + 0x32], ax
cmp byte [ebx + 0xc], al
je 0x1003e52a
and byte [esi + 1], 0xfd
mov ecx, esi
call fcn.1003d910
test byte [ebp + 8], 2
mov edi, eax
mov eax, dword [esi + 0x74]
mov dword [esp + 0x2c], edi
mov byte [eax + 0xc], 0
mov byte [esi], 1
je 0x1003e52a
test edi, edi
jne 0x1003e52a
mov al, byte [esi + 0x44]
test al, al
js 0x1003e4e9
jle 0x1003e4da
lea ebx, [esi + 0x78]
nop dword [eax + eax]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x48]
call fcn.1002fa10
movsx eax, byte [esi + 0x44]
lea ebx, [ebx + 4]
inc edi
cmp edi, eax
jl 0x1003e4c0
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x48]
call fcn.1002fa10
mov byte [esi + 0x44], 0xff
cmp dword [esi + 0x70], 0
mov ebx, dword [esp + 0x28]
je 0x1003e51b
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.1001e110
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
jne 0x1003e50d
lea edi, [eax + 7]
jmp 0x1003e51b
push dword [ebx + 8]
push dword [ebx]
push eax
call fcn.1012be10
add esp, 0xc
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
mov byte [esi], 3
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret