Function at 0x444410
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, dword [0x511080]
xor eax, esp
mov dword [esp + 0x68], eax
cmp dword [ebp + 0xc], 0
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ebx, dword [eax + 4]
mov dword [esp + 0x14], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x18], eax
je 0x444502
movzx eax, byte [edx + 1]
lea esi, [edx + 1]
cmp eax, 0x80
jae 0x44447f
movzx ecx, byte [edx]
mov esi, 2
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
movzx eax, byte [eax + 0x500c28]
lea edi, [eax + ecx]
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edi
add ebx, 0x28
jmp 0x444597
movzx ecx, byte [esi + 1]
mov dword [esp + 0x10], ecx
test cl, cl
js 0x444497
and eax, 0x7f
shl eax, 7
or eax, ecx
mov cl, 2
jmp 0x4444da
movzx ecx, byte [esi + 2]
shl eax, 0xe
or ecx, eax
test cl, cl
js 0x4444ba
mov eax, dword [esp + 0x10]
and ecx, 0x1fc07f
and eax, 0x7f
shl eax, 7
or eax, ecx
mov cl, 3
jmp 0x4444da
lea edx, [esp + 0x28]
mov ecx, esi
call fcn.0041d7f0
xor edx, edx
mov cl, al
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x2c]
je 0x4444d6
or eax, 0xffffffff
mov edx, dword [esp + 0x14]
movzx esi, cl
movzx ecx, byte [edx]
inc esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
cmp eax, 0x80
jb 0x444461
add eax, 0xfffffff4
mov dword [esp + 0x20], esi
shr eax, 1
jmp 0x444468
movzx ecx, byte [edx]
mov dword [esp + 0x1c], ecx
cmp ecx, 0x80
jae 0x444518
mov esi, 1
jmp 0x444585
movzx eax, byte [edx + 1]
mov dword [esp + 0x10], eax
test al, al
js 0x444534
and ecx, 0x7f
shl ecx, 7
or ecx, eax
mov al, 2
mov dword [esp + 0x1c], ecx
jmp 0x444582
movzx eax, byte [edx + 2]
shl ecx, 0xe
or eax, ecx
test al, al
js 0x44455a
mov ecx, dword [esp + 0x10]
and eax, 0x1fc07f
and ecx, 0x7f
shl ecx, 7
or ecx, eax
mov al, 3
mov dword [esp + 0x1c], ecx
jmp 0x444582
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x28]
call fcn.0041d7f0
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x1c], ecx
cmp edx, dword [esp + 0x2c]
je 0x44457e
or ecx, 0xffffffff
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x14]
movzx esi, al
mov dword [esp + 0x20], esi
mov edi, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x24], 0
cmp edi, dword [esp + 0x34]
jbe 0x4445d7
push 0x50c3cc
push 0x151e1
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bb20
mov edx, dword [esp + 0x2c]
add esp, 0x14
xor eax, eax
mov byte [edx + 0x17], 0xb
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
movsd xmm1, qword [0x50c508]
nop
movzx eax, word [ebx + 0x10]
lea ecx, [edx + esi]
movzx esi, byte [ecx]
test al, 0x24
je 0x4448a0
cmp esi, 0xa
jb 0x44460b
xor ecx, ecx
cmp esi, 0xa
setne cl
lea ecx, [ecx*2 - 1]
jmp 0x444c3f
test esi, esi
je 0x444d25
add edi, edx
mov dword [esp + 0xc], edi
cmp esi, 7
jne 0x4446bb
lea eax, [esp + 0x48]
mov edx, esi
push eax
mov ecx, edi
call fcn.004439f0
movsd xmm0, qword [esp + 0x4c]
add esp, 4
movsd xmm2, qword [0x50c558]
comisd xmm2, xmm0
jbe 0x44464f
or ecx, 0xffffffff
jmp 0x444c3f
comisd xmm0, xmm1
jb 0x44465f
mov ecx, 1
jmp 0x444c3f
call fcn.004f4fd0
mov ecx, dword [ebx]
mov edi, edx
mov edx, dword [ebx + 4]
cmp edx, edi
jg 0x444689
jl 0x444675
cmp ecx, eax
jae 0x44467f
mov ecx, 1
jmp 0x444c3f
cmp edx, edi
jl 0x444691
jg 0x444689
cmp ecx, eax
jbe 0x444691
or ecx, 0xffffffff
jmp 0x444c3f
call fcn.004f5080
movsd xmm1, qword [esp + 0x48]
comisd xmm1, xmm0
jbe 0x4446ac
mov ecx, 1
jmp 0x444c3f
xor ecx, ecx
comisd xmm0, xmm1
setbe cl
dec ecx
jmp 0x444c3f
cmp esi, 6
ja case.default.0x4446c4
jmp dword [esi*4 + 0x444de0]
movsx eax, byte [edi]
cdq
mov edi, eax
mov ecx, edx
jmp 0x444838
movsx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or eax, ecx
cdq
mov edi, eax
mov ecx, edx
jmp 0x444838
movzx eax, byte [edi + 1]
movzx ecx, byte [edi + 2]
shl eax, 8
or eax, ecx
movsx ecx, byte [edi]
shl ecx, 0x10
or eax, ecx
cdq
mov edi, eax
mov ecx, edx
jmp 0x444838
movzx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or eax, ecx
movzx ecx, byte [edi + 2]
shl eax, 8
or eax, ecx
movzx ecx, byte [edi + 3]
shl eax, 8
or eax, ecx
cdq
mov edi, eax
mov ecx, edx
jmp 0x444838
movzx eax, byte [edi + 2]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 3]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 4]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 5]
cdq
or ecx, edx
or edi, eax
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0xc]
movzx eax, byte [ecx + 1]
movsx ecx, byte [ecx]
shl ecx, 8
or eax, ecx
mov ecx, dword [esp + 0x28]
add edi, 0
cdq
adc ecx, eax
jmp 0x444838
movzx eax, byte [edi + 1]
cdq
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
cdq
shld edx, eax, 8
shl eax, 8
or ecx, edx
or edi, eax
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 2]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 3]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 4]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 5]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 6]
cdq
or edi, eax
or ecx, edx
mov eax, dword [esp + 0xc]
shld ecx, edi, 8
shl edi, 8
movzx eax, byte [eax + 7]
cdq
or edi, eax
or ecx, edx
jmp 0x444838
lea edi, [esi - 8]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp ecx, edx
jl 0x444d25
jg 0x444861
cmp edi, eax
jb 0x444d25
cmp ecx, edx
jg 0x444861
jl 0x444c5e
cmp edi, eax
jbe 0x444c5e
mov ecx, 1
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x24]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + edx]
test eax, eax
je 0x444d75
test al, 2
je 0x444d73
test esi, esi
je 0x444d67
test byte [ebx + 0x10], 1
jne 0x444d67
xor edx, edx
jmp 0x444d6c
test al, 8
je 0x444997
cmp esi, 0xa
jb 0x4448c1
xor ecx, ecx
cmp esi, 0xa
setne cl
lea ecx, [ecx*2 - 1]
jmp 0x444c3f
test esi, esi
je 0x444d25
lea eax, [esp + 0x48]
lea ecx, [edx + edi]
mov edx, esi
push eax
call fcn.004439f0
movsd xmm0, qword [ebx]
add esp, 4
cmp esi, 7
jne 0x44490b
movsd xmm1, qword [esp + 0x48]
comisd xmm0, xmm1
ja 0x444d25
comisd xmm1, xmm0
ja 0x444861
movsd xmm1, qword [0x50c508]
jmp 0x444c5e
movsd xmm2, qword [0x50c558]
comisd xmm2, xmm0
jbe 0x444923
mov ecx, 1
jmp 0x444c3f
comisd xmm0, xmm1
jb 0x444931
or ecx, 0xffffffff
jmp 0x444c3f
call fcn.004f4fd0
mov ecx, dword [esp + 0x48]
mov edi, edx
mov edx, dword [esp + 0x4c]
cmp edx, edi
jg 0x444675
jl 0x444689
cmp ecx, eax
jae 0x44495a
or ecx, 0xffffffff
jmp 0x444c3f
cmp edx, edi
jl 0x444972
jg 0x444675
cmp ecx, eax
jbe 0x444972
mov ecx, 1
jmp 0x444c3f
call fcn.004f5080
movsd xmm1, qword [ebx]
comisd xmm1, xmm0
jbe 0x444989
or ecx, 0xffffffff
jmp 0x444c3f
xor ecx, ecx
comisd xmm0, xmm1
seta cl
jmp 0x444c3f
test al, 2
je 0x444b0d
cmp esi, 0x80
jb 0x4449bb
movzx edx, byte [ecx + 1]
test dl, dl
js 0x444a52
and esi, 0x7f
shl esi, 7
or esi, edx
mov eax, esi
cmp esi, 0xc
jb 0x444d25
test al, 1
je 0x444d1b
lea ecx, [esi - 0xc]
shr ecx, 1
mov dword [esp + 0x28], ecx
mov dword [esp + 0x54], ecx
lea eax, [ecx + edi]
cmp eax, dword [esp + 0x34]
ja 0x444ce1
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
movzx eax, word [edx + 8]
cmp eax, dword [esp + 0x24]
jle 0x444ce1
mov eax, dword [esp + 0x24]
cmp dword [edx + eax*4 + 0x14], 0
je 0x444a94
mov al, byte [edx + 4]
lea ecx, [esp + 0x48]
mov byte [esp + 0x5a], al
mov eax, dword [edx + 0xc]
mov dword [esp + 0x5c], eax
mov eax, 2
mov word [esp + 0x58], ax
mov eax, dword [esp + 0x14]
add eax, edi
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x18]
add eax, 0x17
push eax
mov eax, dword [esp + 0x28]
push dword [edx + eax*4 + 0x14]
mov edx, ebx
call fcn.00443ee0
add esp, 8
mov ecx, eax
jmp 0x444c3f
movzx eax, byte [ecx + 2]
shl esi, 0xe
or eax, esi
test al, al
js 0x444a73
mov esi, edx
and eax, 0x1fc07f
and esi, 0x7f
shl esi, 7
or esi, eax
jmp 0x4449bb
lea edx, [esp + 0x38]
call fcn.0041d7f0
mov esi, dword [esp + 0x38]
xor eax, eax
cmp eax, dword [esp + 0x3c]
je 0x4449bb
or esi, 0xffffffff
jmp 0x4449ce
mov edi, dword [ebx + 0xc]
cmp ecx, edi
mov edx, dword [ebx + 8]
cmovl edi, ecx
mov ecx, dword [esp + 0x14]
add ecx, dword [esp + 0x10]
sub edi, 4
jb 0x444ac1
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x444ac6
add ecx, 4
add edx, 4
sub edi, 4
jae 0x444ab0
cmp edi, 0xfffffffc
je 0x444afa
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x444af3
cmp edi, 0xfffffffd
je 0x444afa
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x444af3
cmp edi, 0xfffffffe
je 0x444afa
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x444af3
cmp edi, 0xffffffff
je 0x444afa
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x444afa
sbb ecx, ecx
or ecx, 1
jmp 0x444afc
xor ecx, ecx
test ecx, ecx
jne 0x444866
mov ecx, dword [esp + 0x28]
jmp 0x444c3c
test al, 0x10
je 0x444c51
cmp esi, 0x80
jb 0x444b66
movzx edx, byte [ecx + 1]
test dl, dl
js 0x444b2f
and esi, 0x7f
shl esi, 7
or esi, edx
jmp 0x444b66
movzx eax, byte [ecx + 2]
shl esi, 0xe
or eax, esi
test al, al
js 0x444b4d
mov esi, edx
and eax, 0x1fc07f
and esi, 0x7f
shl esi, 7
or esi, eax
jmp 0x444b66
lea edx, [esp + 0x40]
call fcn.0041d7f0
mov esi, dword [esp + 0x40]
xor eax, eax
cmp eax, dword [esp + 0x44]
jne 0x444d22
mov ecx, esi
mov dword [esp + 0x28], ecx
cmp esi, 0xc
jb 0x444d25
test cl, 1
jne 0x444d25
mov edx, dword [esp + 0x10]
lea edi, [ecx - 0xc]
shr edi, 1
lea eax, [edi + edx]
cmp eax, dword [esp + 0x34]
ja 0x444d2d
movzx eax, word [ebx + 0x10]
test eax, 0x400
je 0x444bc5
xor eax, eax
test edi, edi
je 0x444bbf
add edx, dword [esp + 0x14]
nop dword [eax]
cmp byte [edx + eax], 0
jne 0x444861
inc eax
cmp eax, edi
jl 0x444bb0
mov ecx, edi
sub ecx, dword [ebx]
jmp 0x444c3f
mov esi, dword [ebx + 0xc]
cmp edi, esi
mov ecx, dword [esp + 0x14]
cmovl esi, edi
add ecx, edx
mov edx, dword [ebx + 8]
sub esi, 4
jb 0x444bf1
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x444bf6
add ecx, 4
add edx, 4
sub esi, 4
jae 0x444be0
cmp esi, 0xfffffffc
je 0x444c2a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x444c23
cmp esi, 0xfffffffd
je 0x444c2a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x444c23
cmp esi, 0xfffffffe
je 0x444c2a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x444c23
cmp esi, 0xffffffff
je 0x444c2a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x444c2a
sbb ecx, ecx
or ecx, 1
jmp 0x444c2c
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov esi, eax
test ecx, ecx
jne 0x444866
mov ecx, edi
sub ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x444866
movsd xmm1, qword [0x50c508]
jmp 0x444c5e
test esi, esi
je 0x444c5e
cmp esi, 0xa
jne 0x444861
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x24]
inc ecx
mov dword [esp + 0x24], ecx
movzx eax, word [edx + 0x14]
cmp ecx, eax
je 0x444dc3
add ebx, 0x28
cmp esi, 0x80
jb 0x444c89
lea eax, [esi - 0xc]
shr eax, 1
jmp 0x444c90
movzx eax, byte [esi + 0x500c28]
mov edi, dword [esp + 0x10]
add edi, eax
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x34]
ja 0x444dc3
shr esi, 7
xor ecx, ecx
mov eax, esi
mov edx, 1
or eax, ecx
je 0x444cc2
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x444cb4
mov eax, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x1c]
jae 0x444d89
mov edx, dword [esp + 0x14]
mov esi, eax
jmp 0x4445e0
push 0x50c3cc
push 0x1522e
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bb20
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov byte [eax + 0x17], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
mov esi, eax
jmp 0x444861
or esi, 0xffffffff
or ecx, 0xffffffff
jmp 0x444866
push 0x50c3cc
push 0x1524c
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bb20
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov byte [eax + 0x17], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
mov edx, 1
and eax, 1
cmp eax, edx
je 0x444d75
neg ecx
mov eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
push 0x50c3cc
push 0x15278
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0041bb20
mov eax, dword [esp + 0x2c]
add esp, 0x14
mov byte [eax + 0x17], 0xb
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004d2eed
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x74]
movsx eax, byte [edx + 0x16]
pop edi
pop esi
pop ebx
xor ecx, esp
mov byte [edx + 0x1a], 1
call fcn.004d2eed
mov esp, ebp
pop ebp
ret