Function at 0x100451d0
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 + 0x1c], edi
je 0x10045277
mov eax, dword [edi + 4]
mov edx, dword [esi + 0x40]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x10045224
nop dword [eax]
cmp ecx, esi
je 0x1004521d
test edx, edx
je 0x1004525f
cmp dword [ecx + 0x40], edx
je 0x1004525f
mov ecx, dword [ecx + 0x18]
test ecx, ecx
jne 0x10045210
and byte [esi + 1], 0xdf
cmp dword [esp + 0x14], 0
je 0x10045277
cmp byte [esi + 0x44], 0
jge 0x10045277
push 0x10144edc
push 0x134ca
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
je 0x10045224
push esi
call fcn.1003bf10
add esp, 4
test eax, eax
je 0x10045228
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi], 3
jb 0x10045296
mov ecx, esi
call fcn.100406f0
mov edi, eax
test edi, edi
je 0x10045292
cmp edi, 0x10
jne 0x1004588e
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + 0x70]
mov edx, dword [ebp + 8]
test eax, eax
jne 0x10045416
cmp byte [edi + 0xb], 0
je 0x100452fa
mov eax, dword [esp + 0x1c]
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 0x100452f7
mov ebx, dword [esp + 0x1c]
nop dword [eax]
test byte [eax + 1], 0x10
je 0x100452ec
mov byte [ebx + 0xb], 1
cmp dword [eax + 0x40], ecx
jne 0x100452ec
cmp dword [eax + 0x20], edx
jne 0x100452ec
cmp dword [eax + 0x24], edi
jne 0x100452ec
mov byte [eax], 1
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x100452d0
mov ebx, dword [esp + 0x28]
mov edx, dword [ebp + 8]
test byte [esi + 1], 2
je 0x100453aa
mov eax, dword [ebx + 8]
cmp eax, dword [esi + 0x20]
jne 0x100453aa
mov eax, dword [ebx + 0xc]
cmp eax, dword [esi + 0x24]
jne 0x100453aa
cmp word [esi + 0x32], 0
je 0x100453d6
mov eax, dword [ebx + 0x1c]
add eax, dword [ebx + 0x20]
mov dword [esp + 0x24], eax
cmp dword [esi + 0x2c], eax
jne 0x100453d6
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 0x10045380
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x10045380
cmp edi, dword [esp + 0x24]
jne 0x10045370
push edi
push 0
push ebx
call fcn.10044ef0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, ebx
mov ecx, esi
call fcn.100450a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10144edc
push 0x13479
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x100453d6
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.10040970
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x1004588e
mov ebx, dword [esi + 0x74]
cmp dword [ebx + 0x14], 0
jge 0x1004551f
cmp byte [esi], 1
jbe 0x10045510
push 0x10144edc
push 0x13545
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
add esp, 0x14
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x14], 0
jne 0x100453d6
test dl, 2
jne 0x1004548c
movzx ecx, word [ebx + 0x18]
test cx, cx
je 0x1004545a
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.10040c10
add esp, 4
jmp 0x1004547a
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.1003bfb0
add esp, 0x10
test eax, eax
jne 0x10045890
cmp dword [esp + 0x14], eax
jne 0x100453d6
mov ecx, esi
call fcn.1003ffb0
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0xc]
cmp dword [esi + 0x20], ecx
jne 0x100453d6
cmp dword [esi + 0x24], eax
jne 0x100453d6
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 0x10045380
movzx eax, word [ecx + 0x12]
add eax, dword [ecx + 0x38]
cmp edx, eax
jb 0x10045380
cmp edi, dword [ebx + 8]
jne 0x100454fe
push edi
lea eax, [esp + 0x34]
push 0
push eax
call fcn.10044ef0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x30]
mov ecx, esi
call fcn.100450a0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, ebx
call fcn.1003d3a0
test eax, eax
jne 0x10045890
test byte [ebp + 8], 0x80
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x54]
mov dword [esp + 0x24], edx
je 0x100455fd
mov edi, dword [eax + 0x58]
mov ecx, edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], edi
cmp edi, 4
jge 0x10045558
mov edi, 4
mov dword [esp + 0x18], edi
mov ecx, edi
cmp byte [eax + 0x11], 0
je 0x100455af
movzx eax, word [ebx + 0xe]
cmp ecx, eax
jbe 0x100455af
lea eax, [esp + 0x30]
push eax
mov eax, dword [ebx + 0x50]
push edx
push ebx
call eax
movzx eax, word [esp + 0x4c]
add esp, 0xc
cmp dword [esp + 0x3c], eax
je 0x100455af
lea eax, [esp + 0x20]
push eax
mov eax, dword [esp + 0x28]
push dword [ebx + 4]
push 3
mov edx, dword [eax + edi - 4]
mov eax, dword [esp + 0x28]
bswap edx
mov ecx, dword [eax + 4]
call fcn.1003c120
mov edi, dword [esp + 0x2c]
add esp, 0xc
test edi, edi
jne 0x1004588e
mov ecx, dword [esp + 0x18]
movzx eax, word [esi + 0x46]
xor edi, edi
mov edx, eax
mov word [esi + 0x32], di
mov dword [esp + 0x2c], edx
cmp dword [esp + 0x14], edi
jne 0x100457c4
movzx eax, word [ebx + 0x18]
cmp edx, eax
jb 0x10045624
push 0x10144edc
push 0x1356c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
add esp, 0x14
lea eax, [edi + 0xb]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x2c]
mov ecx, ebx
push eax
push dword [esp + 0x2c]
call fcn.10042170
mov edi, eax
add esp, 8
test edi, edi
jne 0x1004588e
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x18], ecx
jmp 0x100455b3
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 4
mov edx, dword [ecx + 0x14]
je 0x10045644
mov eax, dword [edx + 0x1c]
cmp eax, dword [ecx + 0x18]
jb 0x10045644
cmp dword [edx + 0x68], edi
je 0x10045673
call fcn.10035190
jmp 0x10045669
mov edi, dword [edx + 0x2c]
test edi, edi
jne 0x1004588e
mov eax, dword [edx + 0x9c]
cmp eax, dword [edx + 0xa8]
jbe 0x10045664
call fcn.10036ae0
jmp 0x10045669
call fcn.10036a50
mov edi, eax
test edi, edi
jne 0x1004588e
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 0x1004569c
mov ecx, dword [esp + 0x24]
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 0x100456d1
lea eax, [esp + 0x30]
mov edx, edi
push eax
mov ecx, ebx
call fcn.10042000
mov cx, word [esp + 0x44]
add esp, 4
jmp 0x100456d3
xor eax, eax
and byte [esi + 1], 0xfb
mov edx, dword [esp + 0x18]
mov dword [esp + 0x20], eax
movzx eax, word [esp + 0x42]
cmp eax, edx
jne 0x1004579a
movzx eax, cx
cmp eax, dword [esp + 0x3c]
jne 0x10045795
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
cmp byte [eax + 0x11], 0
je 0x10045712
movzx eax, word [ebx + 0x10]
cmp edx, eax
jge 0x10045795
mov eax, dword [ebx + 0x38]
movzx ecx, byte [ebx + 9]
add eax, 0xa
add eax, ecx
cmp edi, eax
jae 0x1004574c
push 0x10144edc
push 0x13587
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
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 0x1004577e
push 0x10144edc
push 0x1358a
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.10028790
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 edi
call fcn.10118c90
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 + 0x20]
push ecx
push eax
mov ecx, ebx
call fcn.10042530
mov edi, dword [esp + 0x28]
add esp, 8
test edi, edi
jne 0x1004588e
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
jmp 0x100457d8
jge 0x100457d8
cmp word [ebx + 0x18], di
jbe 0x100457d8
inc eax
and byte [esi + 1], 0xfd
mov word [esi + 0x46], ax
movzx edx, ax
push ecx
push dword [esp + 0x28]
mov ecx, ebx
call fcn.10042950
add esp, 8
mov edi, eax
cmp byte [ebx + 0xc], 0
je 0x1004588e
and byte [esi + 1], 0xfd
mov ecx, esi
call fcn.10044b70
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 0x1004588e
test edi, edi
jne 0x1004588e
mov al, byte [esi + 0x44]
test al, al
js 0x1004584d
jle 0x1004583e
lea ebx, [esi + 0x78]
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0x48]
call fcn.100365d0
movsx eax, byte [esi + 0x44]
lea ebx, [ebx + 4]
inc edi
cmp edi, eax
jl 0x10045824
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi + 0x74]
mov ecx, dword [ecx + 0x48]
call fcn.100365d0
mov byte [esi + 0x44], 0xff
cmp dword [esi + 0x70], 0
mov ebx, dword [esp + 0x28]
je 0x1004587f
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.10025910
add esp, 8
mov dword [esi + 0x10], eax
test eax, eax
jne 0x10045871
lea edi, [eax + 7]
jmp 0x1004587f
push dword [ebx + 8]
push dword [ebx]
push eax
call fcn.10118c90
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