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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x38
mov edi, dword [ecx + 0xc]
mov esi, dword [ecx + 0x30]
mov dword [esp + 0x1c], edx
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + 0x24]
bswap ebx
cmp ebx, esi
jae 0x44704d
mov ebp, ecx
test ebx, ebx
mov dword [esp + 0x10], ecx
je 0x447075
mov al, byte [esp + 0x54]
cmp al, 2
je 0x4470bb
cmp al, 1
jne 0x447043
mov edx, dword [esp + 0x50]
cmp esi, edx
jae 0x447102
mov dword [esp + 8], 0
jmp 0x4470c1
push 0x50d803
push 0x11284
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov ebp, 0xb
jmp 0x447d47
cmp byte [ebp + 0x13], 0
mov ecx, dword [edi + 0x48]
sete bl
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x447094
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jae 0x447130
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447d47
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x447972
call fcn.00445510
jmp 0x447977
mov al, 1
mov dword [esp + 8], eax
mov ecx, dword [edi + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x4470d5
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jae 0x4470f5
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447d47
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x447144
call fcn.00445510
jmp 0x447149
cmp dword [eax + 0x60], 0
je 0x447153
call fcn.0043b610
jmp 0x447149
mov byte [esp + 0xc], 0xff
lea eax, [esp + 0xc]
mov ecx, ebp
push 0
push eax
call fcn.00446e90
add esp, 8
cmp byte [esp + 0xc], 2
mov ebp, eax
sete al
test ebp, ebp
mov dword [esp + 8], eax
jne 0x447d47
jmp 0x4470c1
cmp dword [eax + 0x60], 0
je 0x447988
call fcn.0043b610
jmp 0x447977
call fcn.00445900
mov ebp, eax
test eax, eax
jne 0x447d47
mov eax, dword [edi + 0x38]
lea ecx, [ebx - 1]
xor edx, edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], edi
bswap ecx
mov dword [eax + 0x24], ecx
mov ebx, edx
test edx, edx
je 0x447195
mov eax, dword [ebx + 0x38]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
shl ecx, 0x18
shl edx, 0x10
or edx, ecx
movzx ecx, byte [eax + 2]
add eax, 3
jmp 0x4471af
mov eax, dword [edi + 0x38]
movzx ecx, byte [eax + 0x20]
movzx edx, byte [eax + 0x21]
shl ecx, 0x18
shl edx, 0x10
or edx, ecx
movzx ecx, byte [eax + 0x22]
add eax, 0x23
shl ecx, 8
or ecx, edx
movzx esi, byte [eax]
mov edx, dword [esp + 0x10]
or esi, ecx
cmp esi, dword [esp + 0x24]
ja 0x447a1b
mov eax, dword [esp + 0x2c]
cmp eax, dword [esp + 0x34]
ja 0x447a1b
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [edx]
push 0
lea ecx, [esp + 0x10]
push ecx
push esi
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
jne 0x447a2a
mov ecx, dword [esp + 0xc]
mov edx, dword [ecx + 8]
cmp dword [edx + 4], esi
mov dword [esp], edx
jne 0x447218
lea eax, [edx + 0x48]
mov ecx, dword [edx + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
jmp 0x44724b
mov eax, dword [ecx + 4]
mov edi, dword [esp]
cmp esi, 1
mov ebp, 0x64
mov dword [edx + 0x38], eax
lea eax, [edx + 0x48]
mov dword [edx + 0x48], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x34], eax
mov dword [edx + 4], esi
mov edx, 0
cmove edx, ebp
mov byte [edi + 9], dl
mov edx, dword [esp]
mov ebp, dword [esp + 0x50]
cmp word [ecx + 0x1e], 2
jge 0x447a31
mov byte [edx], 0
mov dword [esp + 4], ebx
cmp byte [esp + 8], 0
mov edi, dword [edx + 0x38]
mov ebx, dword [edi + 4]
mov dword [esp + 0x18], edi
bswap ebx
jne 0x4472bb
test ebx, ebx
jne 0x4472bb
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x447290
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
mov edx, dword [esp]
jae 0x447382
mov ebp, dword [eax + 0x28]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
test ebp, ebp
jne 0x447c9f
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x44732a
call fcn.00445510
jmp 0x447395
mov ecx, dword [eax + 0x28]
shr ecx, 2
add ecx, 0xfffffffe
cmp ebx, ecx
ja 0x447acd
cmp byte [esp + 8], 0
je 0x4472e8
cmp byte [esp + 0x54], 2
sete cl
cmp esi, ebp
setb dl
cmp esi, ebp
je 0x447331
and cl, dl
jne 0x447331
test ebx, ebx
je 0x4473d2
mov al, byte [esp + 0x54]
xor esi, esi
test ebp, ebp
je 0x447446
cmp al, 2
jne 0x4473d9
mov eax, dword [esp + 0x18]
xor esi, esi
nop dword [eax]
mov ecx, dword [eax + esi*4 + 8]
bswap ecx
cmp ecx, ebp
jbe 0x447446
inc esi
cmp ebx, esi
jne 0x447310
xor esi, esi
jmp 0x447446
call fcn.00445900
jmp 0x447395
mov eax, dword [esp + 0x4c]
mov edx, dword [esp]
mov dword [eax], esi
mov eax, dword [esp + 0x1c]
mov dword [eax], edx
mov ecx, dword [edx + 0x48]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x44735b
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
mov edx, dword [esp]
jae 0x4474d6
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447adc
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x4474cf
call fcn.00445510
jmp 0x4474e1
cmp dword [eax + 0x60], 0
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
je 0x4473a2
call fcn.0043b610
mov edx, dword [esp]
mov ebp, eax
test eax, eax
jne 0x447c9f
mov eax, dword [esp + 0x4c]
xor ebp, ebp
mov dword [esp + 8], 0
mov dword [eax], esi
mov ecx, dword [edx + 0x38]
mov eax, dword [edi + 0x38]
mov ecx, dword [ecx]
mov dword [eax + 0x20], ecx
mov ecx, dword [esp + 0x1c]
mov dword [ecx], edx
xor edx, edx
test ebx, ebx
jne 0x447887
jmp 0x4478dd
xor ebp, ebp
jmp 0x4476f6
cmp ebx, 2
jb 0x447446
mov eax, dword [esp + 0x18]
mov edx, dword [eax + 8]
mov eax, 0x7fffffff
bswap edx
sub edx, dword [esp + 0x50]
mov ecx, edx
neg ecx
cmp edx, 0x80000000
cmove ecx, eax
test edx, edx
cmovns ecx, edx
xor esi, esi
mov edx, 1
nop dword [eax]
mov eax, dword [esp + 0x18]
mov edi, ebx
mov ebx, 0x7fffffff
mov ebp, dword [eax + edx*4 + 8]
bswap ebp
sub ebp, dword [esp + 0x50]
mov eax, ebp
neg eax
cmp ebp, 0x80000000
cmove eax, ebx
test ebp, ebp
mov ebx, edi
cmovns eax, ebp
cmp eax, ecx
cmovl ecx, eax
cmovl esi, edx
inc edx
cmp edi, edx
jne 0x447410
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + esi*4 + 8]
bswap ecx
cmp ecx, dword [esp + 0x24]
ja 0x447c31
cmp byte [esp + 0x54], 2
mov eax, dword [esp + 0x50]
sete dl
cmp ecx, eax
setb dh
cmp ecx, eax
je 0x447487
cmp byte [esp + 8], 0
je 0x447487
and dl, dh
jne 0x447487
mov al, 1
xor ebp, ebp
mov dword [esp + 8], eax
jmp 0x4476f6
mov eax, dword [esp + 0x4c]
mov dword [eax], ecx
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x4474a8
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
jae 0x447649
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447c98
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x447638
call fcn.00445510
jmp 0x447654
call fcn.00445900
jmp 0x4474e1
cmp dword [eax + 0x60], 0
je 0x4474ee
call fcn.0043b610
mov edx, dword [esp]
mov ebp, eax
test eax, eax
jne 0x447adc
test ebx, ebx
je 0x44756c
mov eax, dword [edx + 0x38]
movzx ecx, byte [eax + 8]
movzx edx, byte [eax + 9]
mov dword [esp + 8], ecx
mov dword [esp + 0x18], edx
shl ecx, 0x18
shl edx, 0x10
or edx, ecx
movzx ecx, byte [eax + 0xa]
mov edi, ecx
shl edi, 8
or edi, edx
movzx edx, byte [eax + 0xb]
mov eax, dword [esp + 0x10]
or edi, edx
cmp edi, dword [esp + 0x24]
ja 0x447c75
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
push 0
lea ecx, [esp + 0x10]
push ecx
push edi
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
jne 0x447d51
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 8]
cmp dword [esi + 4], edi
jne 0x4475be
mov ecx, dword [esi + 0x48]
lea ebp, [esi + 0x48]
jmp 0x4475e7
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x447dcf
mov ecx, dword [ebx + 0x48]
mov edi, dword [esp + 0x14]
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x447597
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
mov edx, dword [esp]
jae 0x447859
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447c9f
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x44781e
call fcn.00445510
jmp 0x447864
mov eax, dword [ecx + 4]
cmp edi, 1
mov edx, 0x64
lea ebp, [esi + 0x48]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 0x48], ecx
mov dword [esi + 0x34], eax
mov eax, 0
mov dword [esi + 4], edi
cmove eax, edx
mov byte [esi + 9], al
mov edi, dword [esp + 0x14]
cmp word [ecx + 0x1e], 2
jge 0x447d58
mov byte [esi], 0
mov dword [esp + 0x30], ebp
mov eax, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x447615
mov edx, dword [eax + 0x18]
cmp edx, dword [ecx + 0x18]
mov edx, dword [esp]
jae 0x44778f
mov ebp, dword [eax + 0x28]
test ebp, ebp
jne 0x447dc5
mov edx, dword [eax + 0x94]
cmp edx, dword [eax + 0x98]
jbe 0x44763f
call fcn.00445510
jmp 0x44779a
call fcn.00445900
jmp 0x447654
call fcn.00445900
jmp 0x44779a
cmp dword [eax + 0x60], 0
je 0x447661
call fcn.0043b610
mov edx, dword [esp]
mov ebp, eax
test eax, eax
jne 0x447adc
mov edx, dword [esp + 0x18]
lea eax, [ebx - 1]
cmp esi, eax
jae 0x447674
mov ecx, dword [edx + ebx*4 + 4]
mov dword [edx + esi*4 + 8], ecx
mov ebp, dword [esp + 0x10]
mov ecx, dword [esp + 0x4c]
bswap eax
mov dword [edx + 4], eax
mov edi, dword [ebp + 0x40]
mov esi, dword [ecx]
test edi, edi
je 0x4476bd
mov eax, dword [edi]
cmp eax, esi
jae 0x447697
mov ebx, 1
jmp 0x4476bf
lea ecx, [esi - 1]
cmp ecx, eax
jae 0x4476bd
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x4478f7
mov eax, ecx
xor edx, edx
div ebx
xor ebx, ebx
mov edi, dword [edi + eax*4 + 0xc]
mov ecx, edx
test edi, edi
jne 0x44769e
jmp 0x4476bf
xor ebx, ebx
mov dword [esp + 0xc], 0xffffffff
xor ebx, 1
mov eax, dword [ebp]
push ebx
lea ecx, [esp + 0x10]
push ecx
push esi
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
je 0x44770e
mov ecx, dword [esp + 0x1c]
mov ebp, eax
mov dword [esp + 8], 0
mov dword [ecx], 0
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov edx, dword [esp]
test ebx, ebx
jne 0x447887
jmp 0x4478dd
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 4]
mov edi, dword [esp + 0x14]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], esi
je 0x447748
mov edx, dword [ecx + 4]
cmp esi, 1
mov dword [eax + 0x38], edx
mov dword [eax + 0x48], ecx
mov ecx, dword [esp + 0x10]
mov edx, 0x64
mov dword [eax + 0x34], ecx
mov ecx, 0
mov dword [eax + 4], esi
cmove ecx, edx
mov byte [eax + 9], cl
mov esi, dword [esp + 0x1c]
mov dword [esi], eax
mov ecx, dword [eax + 0x48]
cmp word [ecx + 0x1e], 2
jl 0x447825
call fcn.004421c0
mov dword [esi], 0
push 0x50d803
push 0x1042d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov ebp, 0xb
jmp 0x44791e
cmp dword [eax + 0x60], 0
je 0x4477a7
call fcn.0043b610
mov edx, dword [esp]
mov ebp, eax
test eax, eax
jne 0x447dbf
mov ecx, dword [edx + 0x38]
mov eax, dword [esi + 0x38]
mov ecx, dword [ecx]
mov dword [eax], ecx
lea ecx, [ebx - 1]
mov eax, dword [esi + 0x38]
bswap ecx
mov dword [eax + 4], ecx
mov ecx, dword [edx + 0x38]
mov eax, dword [esi + 0x38]
lea edx, [ebx*4 - 4]
add eax, 8
add ecx, 0xc
push edx
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x48]
call fcn.004421c0
mov ebx, dword [esp + 4]
test ebx, ebx
je 0x447d95
mov ecx, dword [ebx + 0x48]
call fcn.00424050
test eax, eax
jne 0x447db8
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 8]
mov byte [eax], cl
mov ecx, dword [esp + 0x18]
mov byte [eax + 1], cl
mov ecx, dword [esp + 0x20]
mov byte [eax + 2], cl
mov ecx, dword [esp + 0x28]
mov byte [eax + 3], cl
jmp 0x44787b
call fcn.00445900
jmp 0x447864
mov byte [eax], 0
mov eax, dword [esi]
mov ecx, dword [eax + 0x48]
call fcn.00424050
test eax, eax
je 0x44791c
mov ebp, eax
mov eax, dword [esi]
test eax, eax
je 0x44784a
mov ecx, dword [eax + 0x48]
call fcn.004421c0
mov eax, dword [esp + 0x1c]
mov dword [eax], 0
jmp 0x44791e
cmp dword [eax + 0x60], 0
je 0x447871
call fcn.0043b610
mov edx, dword [esp]
mov ebp, eax
test eax, eax
jne 0x447c9f
mov ecx, dword [edx + 0x38]
mov eax, dword [ebx + 0x38]
mov ecx, dword [ecx]
mov dword [eax], ecx
mov dword [esp + 8], 0
xor ebp, ebp
xor edx, edx
mov ecx, dword [ebx + 0x48]
mov dword [esp], edx
test byte [ecx + 0x1c], 0x20
jne 0x44789a
call fcn.00442220
jmp 0x4478da
mov esi, dword [ecx + 0x14]
dec dword [esi + 0x78]
mov eax, dword [esi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [esi + 0x88], ecx
mov ebx, dword [ecx + 0x18]
mov edi, dword [esi + 0x98]
mov esi, dword [esi + 0x3c]
dec ebx
mov eax, ebx
mul edi
sar edi, 0x1f
imul edi, ebx
add edx, edi
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
mov edi, dword [esp + 0x24]
add esp, 0x10
mov edx, dword [esp]
inc dword [esp + 0x2c]
cmp byte [esp + 8], 0
mov al, 1
mov dword [esp + 8], eax
jne 0x447174
jmp 0x447a3e
cmp dword [edi], 0xfa0
ja 0x44792b
mov eax, ecx
and cl, 7
xor ebx, ebx
shr eax, 3
movzx ecx, cl
movzx eax, byte [edi + eax + 0xc]
bt eax, ecx
setb bl
jmp 0x4476bf
xor ebp, ebp
mov dword [esp + 8], 0
jmp 0x4476fe
mov eax, ecx
mov ebx, 0x10624dd3
mov ebp, ecx
mul ebx
shr edx, 3
imul eax, edx, 0x7d
sub ebp, eax
mov eax, dword [edi + ebp*4 + 0xc]
test eax, eax
je 0x447960
inc ecx
cmp eax, ecx
je 0x447964
inc ebp
mov eax, ebp
mul ebx
shr edx, 3
imul eax, edx, 0x7d
sub ebp, eax
mov eax, dword [edi + ebp*4 + 0xc]
test eax, eax
jne 0x447947
xor ebx, ebx
jmp 0x447969
mov ebx, 1
mov ebp, dword [esp + 0x10]
jmp 0x4476bf
call fcn.00445900
mov ebp, eax
test eax, eax
jne 0x447d47
mov ebp, dword [esp + 0x10]
mov esi, dword [ebp + 0x30]
lea edi, [esi + 1]
xor edx, edx
mov dword [ebp + 0x30], edi
mov eax, dword [0x51d800]
div dword [ebp + 0x24]
mov ecx, eax
cmp esi, eax
jne 0x4479a6
add esi, 2
mov edi, esi
mov dword [ebp + 0x30], esi
xor eax, eax
cmp byte [ebp + 0x11], 0
mov al, bl
mov ebx, eax
je 0x447b5e
xor eax, eax
cmp edi, 2
jb 0x4479ec
mov eax, 0xcccccccd
mov esi, ebx
mul dword [ebp + 0x28]
lea ebp, [edi - 2]
mov eax, ebp
mov ebx, edx
xor edx, edx
shr ebx, 2
inc ebx
div ebx
mov ebx, esi
sub ebp, edx
xor edx, edx
lea eax, [ebp + 1]
cmp eax, ecx
sete dl
lea eax, [edx + ebp + 2]
mov ebp, dword [esp + 0x10]
cmp eax, edi
jne 0x447b5e
mov dword [esp + 0xc], 0xffffffff
lea ecx, [esp + 0xc]
mov eax, dword [ebp]
push ebx
push ecx
push edi
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
je 0x447a4d
mov ebp, eax
jmp 0x447d47
push 0x50d803
push 0x112bc
jmp 0x447aaf
mov ebp, eax
jmp 0x447cf7
test byte [ecx + 0x1c], 0x20
jne 0x447a65
call fcn.00442220
jmp 0x447aa5
xor ebx, ebx
test edx, edx
jne 0x447ca3
jmp 0x447cf7
mov ecx, dword [esp + 0xc]
mov esi, dword [ecx + 8]
cmp dword [esi + 4], edi
jne 0x447aed
mov ecx, dword [esi + 0x48]
jmp 0x447b10
mov edi, dword [ecx + 0x14]
mov ebp, ebx
dec dword [edi + 0x78]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov esi, dword [ecx + 0x18]
mov ebx, dword [edi + 0x98]
dec esi
mov eax, esi
mul ebx
sar ebx, 0x1f
imul ebx, esi
mov esi, dword [edi + 0x3c]
add edx, ebx
mov ebx, ebp
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
push 0x50d803
push 0x1042d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov ebp, 0xb
jmp 0x447cf7
push 0x50d803
push 0x112d9
jmp 0x447c7f
mov ebx, dword [esp + 4]
test edx, edx
jne 0x447ca3
jmp 0x447cf7
mov eax, dword [ecx + 4]
mov ebp, dword [esp + 0x10]
mov edx, 0x64
mov dword [esi + 0x38], eax
mov dword [esi + 0x48], ecx
mov dword [esi + 0x34], ebp
xor ebp, ebp
cmp edi, 1
mov dword [esi + 4], edi
cmovne edx, ebp
mov byte [esi + 9], dl
cmp word [ecx + 0x1e], 2
jl 0x447b21
call fcn.004421c0
jmp 0x447bed
mov byte [esi], 0
call fcn.00424050
mov ecx, dword [esi + 0x48]
mov ebp, eax
call fcn.004421c0
test ebp, ebp
jne 0x447d47
mov ebp, dword [esp + 0x10]
xor edx, edx
mov ecx, dword [ebp + 0x30]
lea edi, [ecx + 1]
mov dword [ebp + 0x30], edi
mov eax, dword [0x51d800]
div dword [ebp + 0x24]
cmp ecx, eax
jne 0x447b5e
add ecx, 2
mov edi, ecx
mov dword [ebp + 0x30], ecx
mov eax, dword [ebp + 0xc]
bswap edi
lea ecx, [esp + 0xc]
mov eax, dword [eax + 0x38]
mov dword [eax + 0x1c], edi
mov eax, dword [esp + 0x4c]
mov esi, dword [ebp + 0x30]
mov dword [eax], esi
mov dword [esp + 0xc], 0xffffffff
mov eax, dword [ebp]
push ebx
push ecx
push esi
push eax
call dword [eax + 0xcc]
add esp, 0x10
test eax, eax
je 0x447ba3
mov ecx, dword [esp + 0x1c]
mov ebp, eax
mov dword [ecx], 0
jmp 0x447d47
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 0x1c]
mov eax, dword [ecx + 8]
cmp dword [eax + 4], esi
je 0x447bd6
mov edx, dword [ecx + 4]
mov ebx, dword [esp + 0x10]
mov dword [eax + 0x38], edx
mov dword [eax + 0x48], ecx
mov dword [eax + 0x34], ebx
xor ebx, ebx
cmp esi, 1
mov edx, 0x64
mov dword [eax + 4], esi
cmovne edx, ebx
mov byte [eax + 9], dl
mov dword [edi], eax
mov ecx, dword [eax + 0x48]
cmp word [ecx + 0x1e], 2
jl 0x447bfc
call fcn.004421c0
mov dword [edi], 0
push 0x50d803
push 0x1042d
jmp 0x447057
mov byte [eax], 0
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
mov edx, dword [ecx + 0x14]
test byte [ecx + 0x1c], 4
je 0x447c15
mov esi, dword [edx + 0x18]
cmp esi, dword [ecx + 0x18]
jae 0x447c3d
mov ebp, dword [edx + 0x28]
test ebp, ebp
jne 0x447c57
mov eax, dword [edx + 0x94]
cmp eax, dword [edx + 0x98]
jbe 0x447c4a
call fcn.00445510
jmp 0x447c4f
push 0x50d803
push 0x1133c
jmp 0x447c7f
cmp dword [edx + 0x60], 0
je 0x447c6e
call fcn.0043b610
jmp 0x447c4f
call fcn.00445900
mov ebp, eax
test eax, eax
je 0x447c6e
mov eax, dword [edi]
test eax, eax
je 0x447c63
mov ecx, dword [eax + 0x48]
call fcn.004421c0
mov dword [edi], 0
jmp 0x447d47
xor ebp, ebp
jmp 0x447d47
push 0x50d803
push 0x112fb
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
add esp, 0x14
mov ebp, 0xb
mov ebx, dword [esp + 4]
mov edx, dword [esp]
test edx, edx
je 0x447cf7
mov ecx, dword [edx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x447cb3
call fcn.00442220
jmp 0x447cf7
mov edi, dword [ecx + 0x14]
dec dword [edi + 0x78]
mov dword [esp + 4], ebx
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov esi, dword [ecx + 0x18]
mov ebx, dword [edi + 0x98]
dec esi
mov eax, esi
mul ebx
sar ebx, 0x1f
imul ebx, esi
mov esi, dword [edi + 0x3c]
add edx, ebx
mov ebx, dword [esp + 4]
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
test ebx, ebx
je 0x447d47
mov ecx, dword [ebx + 0x48]
test byte [ecx + 0x1c], 0x20
jne 0x447d0b
call fcn.00442220
jmp 0x447d47
mov edi, dword [ecx + 0x14]
dec dword [edi + 0x78]
mov eax, dword [edi + 0x88]
mov dword [ecx + 0x10], eax
mov dword [edi + 0x88], ecx
mov esi, dword [ecx + 0x18]
mov ebx, dword [edi + 0x98]
dec esi
mov eax, esi
mul ebx
sar ebx, 0x1f
imul ebx, esi
mov esi, dword [edi + 0x3c]
add edx, ebx
mov edi, dword [esi]
push dword [ecx + 4]
push edx
push eax
push esi
call dword [edi + 0x48]
add esp, 0x10
mov eax, ebp
add esp, 0x38
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebp, eax
jmp 0x447c98
call fcn.004421c0
push 0x50d803
push 0x1042d
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041f100
mov edx, dword [esp + 0x14]
add esp, 0x14
mov ebx, dword [esp + 4]
mov ebp, 0xb
test edx, edx
jne 0x447ca3
jmp 0x447cf7
mov eax, dword [edi + 0x38]
mov ecx, dword [esp + 8]
xor ebp, ebp
mov byte [eax + 0x20], cl
mov ecx, dword [esp + 0x18]
mov byte [eax + 0x21], cl
mov ecx, dword [esp + 0x20]
mov byte [eax + 0x22], cl
mov ecx, dword [esp + 0x28]
mov byte [eax + 0x23], cl
jmp 0x447d47
mov ebp, eax
jmp 0x447c9c
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
call fcn.004421c0
jmp 0x447c98
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + 0x38]
xor ebp, ebp
mov eax, dword [eax + 0x38]
mov ecx, dword [ecx]
mov dword [eax + 0x20], ecx
jmp 0x447d47