Function at 0x452db0
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
mov eax, dword [0x4fc040]
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 0x452ea2
movzx eax, byte [edx + 1]
lea esi, [edx + 1]
cmp eax, 0x80
jae 0x452e1f
movzx ecx, byte [edx]
mov esi, 2
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], ecx
movzx eax, byte [eax + 0x4f1c48]
lea edi, [eax + ecx]
mov dword [esp + 0x24], 1
mov dword [esp + 0x10], edi
add ebx, 0x28
jmp 0x452f37
movzx ecx, byte [esi + 1]
mov dword [esp + 0x10], ecx
test cl, cl
js 0x452e37
and eax, 0x7f
shl eax, 7
or eax, ecx
mov cl, 2
jmp 0x452e7a
movzx ecx, byte [esi + 2]
shl eax, 0xe
or ecx, eax
test cl, cl
js 0x452e5a
mov eax, dword [esp + 0x10]
and ecx, 0x1fc07f
and eax, 0x7f
shl eax, 7
or eax, ecx
mov cl, 3
jmp 0x452e7a
lea edx, [esp + 0x28]
mov ecx, esi
call fcn.0042d740
xor edx, edx
mov cl, al
mov eax, dword [esp + 0x28]
cmp edx, dword [esp + 0x2c]
je 0x452e76
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 0x452e01
add eax, 0xfffffff4
mov dword [esp + 0x20], esi
shr eax, 1
jmp 0x452e08
movzx ecx, byte [edx]
mov dword [esp + 0x1c], ecx
cmp ecx, 0x80
jae 0x452eb8
mov esi, 1
jmp 0x452f25
movzx eax, byte [edx + 1]
mov dword [esp + 0x10], eax
test al, al
js 0x452ed4
and ecx, 0x7f
shl ecx, 7
or ecx, eax
mov al, 2
mov dword [esp + 0x1c], ecx
jmp 0x452f22
movzx eax, byte [edx + 2]
shl ecx, 0xe
or eax, ecx
test al, al
js 0x452efa
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 0x452f22
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x28]
call fcn.0042d740
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x1c], ecx
cmp edx, dword [esp + 0x2c]
je 0x452f1e
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 0x452f77
push 0x4f0354
push 0x15d5f
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0042a650
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.004e3214
mov esp, ebp
pop ebp
ret
movsd xmm1, qword [0x4f6000]
nop
movzx eax, word [ebx + 0x10]
lea ecx, [edx + esi]
movzx esi, byte [ecx]
test al, 0x24
je 0x453240
cmp esi, 0xa
jb 0x452fab
xor ecx, ecx
cmp esi, 0xa
setne cl
lea ecx, [ecx*2 - 1]
jmp 0x4535df
test esi, esi
je 0x4536c5
add edi, edx
mov dword [esp + 0xc], edi
cmp esi, 7
jne 0x45305b
lea eax, [esp + 0x48]
mov edx, esi
push eax
mov ecx, edi
call fcn.00452390
movsd xmm0, qword [esp + 0x4c]
add esp, 4
movsd xmm2, qword [0x4f6090]
comisd xmm2, xmm0
jbe 0x452fef
or ecx, 0xffffffff
jmp 0x4535df
comisd xmm0, xmm1
jb 0x452fff
mov ecx, 1
jmp 0x4535df
call fcn.004e4670
mov ecx, dword [ebx]
mov edi, edx
mov edx, dword [ebx + 4]
cmp edx, edi
jg 0x453029
jl 0x453015
cmp ecx, eax
jae 0x45301f
mov ecx, 1
jmp 0x4535df
cmp edx, edi
jl 0x453031
jg 0x453029
cmp ecx, eax
jbe 0x453031
or ecx, 0xffffffff
jmp 0x4535df
call fcn.004e4770
movsd xmm1, qword [esp + 0x48]
comisd xmm1, xmm0
jbe 0x45304c
mov ecx, 1
jmp 0x4535df
xor ecx, ecx
comisd xmm0, xmm1
setbe cl
dec ecx
jmp 0x4535df
cmp esi, 6
ja case.default.0x453064
jmp dword [esi*4 + 0x453780]
movsx eax, byte [edi]
cdq
mov edi, eax
mov ecx, edx
jmp 0x4531d8
movsx ecx, byte [edi]
movzx eax, byte [edi + 1]
shl ecx, 8
or eax, ecx
cdq
mov edi, eax
mov ecx, edx
jmp 0x4531d8
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 0x4531d8
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 0x4531d8
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 0x4531d8
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 0x4531d8
lea edi, [esi - 8]
xor ecx, ecx
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
cmp ecx, edx
jl 0x4536c5
jg 0x453201
cmp edi, eax
jb 0x4536c5
cmp ecx, edx
jg 0x453201
jl 0x4535fe
cmp edi, eax
jbe 0x4535fe
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 0x453715
test al, 2
je 0x453713
test esi, esi
je 0x453707
test byte [ebx + 0x10], 1
jne 0x453707
xor edx, edx
jmp 0x45370c
test al, 8
je 0x453337
cmp esi, 0xa
jb 0x453261
xor ecx, ecx
cmp esi, 0xa
setne cl
lea ecx, [ecx*2 - 1]
jmp 0x4535df
test esi, esi
je 0x4536c5
lea eax, [esp + 0x48]
lea ecx, [edx + edi]
mov edx, esi
push eax
call fcn.00452390
movsd xmm0, qword [ebx]
add esp, 4
cmp esi, 7
jne 0x4532ab
movsd xmm1, qword [esp + 0x48]
comisd xmm0, xmm1
ja 0x4536c5
comisd xmm1, xmm0
ja 0x453201
movsd xmm1, qword [0x4f6000]
jmp 0x4535fe
movsd xmm2, qword [0x4f6090]
comisd xmm2, xmm0
jbe 0x4532c3
mov ecx, 1
jmp 0x4535df
comisd xmm0, xmm1
jb 0x4532d1
or ecx, 0xffffffff
jmp 0x4535df
call fcn.004e4670
mov ecx, dword [esp + 0x48]
mov edi, edx
mov edx, dword [esp + 0x4c]
cmp edx, edi
jg 0x453015
jl 0x453029
cmp ecx, eax
jae 0x4532fa
or ecx, 0xffffffff
jmp 0x4535df
cmp edx, edi
jl 0x453312
jg 0x453015
cmp ecx, eax
jbe 0x453312
mov ecx, 1
jmp 0x4535df
call fcn.004e4770
movsd xmm1, qword [ebx]
comisd xmm1, xmm0
jbe 0x453329
or ecx, 0xffffffff
jmp 0x4535df
xor ecx, ecx
comisd xmm0, xmm1
seta cl
jmp 0x4535df
test al, 2
je 0x4534ad
cmp esi, 0x80
jb 0x45335b
movzx edx, byte [ecx + 1]
test dl, dl
js 0x4533f2
and esi, 0x7f
shl esi, 7
or esi, edx
mov eax, esi
cmp esi, 0xc
jb 0x4536c5
test al, 1
je 0x4536bb
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 0x453681
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
movzx eax, word [edx + 8]
cmp eax, dword [esp + 0x24]
jle 0x453681
mov eax, dword [esp + 0x24]
cmp dword [edx + eax*4 + 0x14], 0
je 0x453434
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.00452880
add esp, 8
mov ecx, eax
jmp 0x4535df
movzx eax, byte [ecx + 2]
shl esi, 0xe
or eax, esi
test al, al
js 0x453413
mov esi, edx
and eax, 0x1fc07f
and esi, 0x7f
shl esi, 7
or esi, eax
jmp 0x45335b
lea edx, [esp + 0x38]
call fcn.0042d740
mov esi, dword [esp + 0x38]
xor eax, eax
cmp eax, dword [esp + 0x3c]
je 0x45335b
or esi, 0xffffffff
jmp 0x45336e
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 0x453461
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x453466
add ecx, 4
add edx, 4
sub edi, 4
jae 0x453450
cmp edi, 0xfffffffc
je 0x45349a
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x453493
cmp edi, 0xfffffffd
je 0x45349a
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x453493
cmp edi, 0xfffffffe
je 0x45349a
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x453493
cmp edi, 0xffffffff
je 0x45349a
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x45349a
sbb ecx, ecx
or ecx, 1
jmp 0x45349c
xor ecx, ecx
test ecx, ecx
jne 0x453206
mov ecx, dword [esp + 0x28]
jmp 0x4535dc
test al, 0x10
je 0x4535f1
cmp esi, 0x80
jb 0x453506
movzx edx, byte [ecx + 1]
test dl, dl
js 0x4534cf
and esi, 0x7f
shl esi, 7
or esi, edx
jmp 0x453506
movzx eax, byte [ecx + 2]
shl esi, 0xe
or eax, esi
test al, al
js 0x4534ed
mov esi, edx
and eax, 0x1fc07f
and esi, 0x7f
shl esi, 7
or esi, eax
jmp 0x453506
lea edx, [esp + 0x40]
call fcn.0042d740
mov esi, dword [esp + 0x40]
xor eax, eax
cmp eax, dword [esp + 0x44]
jne 0x4536c2
mov ecx, esi
mov dword [esp + 0x28], ecx
cmp esi, 0xc
jb 0x4536c5
test cl, 1
jne 0x4536c5
mov edx, dword [esp + 0x10]
lea edi, [ecx - 0xc]
shr edi, 1
lea eax, [edi + edx]
cmp eax, dword [esp + 0x34]
ja 0x4536cd
movzx eax, word [ebx + 0x10]
test eax, 0x400
je 0x453565
xor eax, eax
test edi, edi
je 0x45355f
add edx, dword [esp + 0x14]
nop dword [eax]
cmp byte [edx + eax], 0
jne 0x453201
inc eax
cmp eax, edi
jl 0x453550
mov ecx, edi
sub ecx, dword [ebx]
jmp 0x4535df
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 0x453591
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x453596
add ecx, 4
add edx, 4
sub esi, 4
jae 0x453580
cmp esi, 0xfffffffc
je 0x4535ca
mov al, byte [ecx]
cmp al, byte [edx]
jne 0x4535c3
cmp esi, 0xfffffffd
je 0x4535ca
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x4535c3
cmp esi, 0xfffffffe
je 0x4535ca
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x4535c3
cmp esi, 0xffffffff
je 0x4535ca
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
je 0x4535ca
sbb ecx, ecx
or ecx, 1
jmp 0x4535cc
xor ecx, ecx
mov eax, dword [esp + 0x28]
mov esi, eax
test ecx, ecx
jne 0x453206
mov ecx, edi
sub ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x453206
movsd xmm1, qword [0x4f6000]
jmp 0x4535fe
test esi, esi
je 0x4535fe
cmp esi, 0xa
jne 0x453201
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 0x453763
add ebx, 0x28
cmp esi, 0x80
jb 0x453629
lea eax, [esi - 0xc]
shr eax, 1
jmp 0x453630
movzx eax, byte [esi + 0x4f1c48]
mov edi, dword [esp + 0x10]
add edi, eax
mov dword [esp + 0x10], edi
cmp edi, dword [esp + 0x34]
ja 0x453763
shr esi, 7
xor ecx, ecx
mov eax, esi
mov edx, 1
or eax, ecx
je 0x453662
shrd esi, ecx, 7
inc edx
shr ecx, 7
mov eax, esi
or eax, ecx
jne 0x453654
mov eax, dword [esp + 0x20]
add eax, edx
mov dword [esp + 0x20], eax
cmp eax, dword [esp + 0x1c]
jae 0x453729
mov edx, dword [esp + 0x14]
mov esi, eax
jmp 0x452f80
push 0x4f0354
push 0x15db6
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0042a650
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.004e3214
mov esp, ebp
pop ebp
ret
mov esi, eax
jmp 0x453201
or esi, 0xffffffff
or ecx, 0xffffffff
jmp 0x453206
push 0x4f0354
push 0x15dd7
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0042a650
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.004e3214
mov esp, ebp
pop ebp
ret
mov edx, 1
and eax, 1
cmp eax, edx
je 0x453715
neg ecx
mov eax, ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x68]
xor ecx, esp
call fcn.004e3214
mov esp, ebp
pop ebp
ret
push 0x4f0354
push 0x15e06
push str.database_corruption
push str._s_at_line__d_of___.10s_
push 0xb
call fcn.0042a650
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.004e3214
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.004e3214
mov esp, ebp
pop ebp
ret