Function at 0x41f040
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x2c
push ebx
push ebp
mov ebp, dword [esp + 0x38]
xor ebx, ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edx
mov ecx, dword [edi + 0x38]
add ecx, 0x24
movzx esi, byte [ecx]
movzx eax, byte [ecx + 1]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 2]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 3]
shl esi, 8
or esi, eax
cmp esi, edx
jb 0x41f0a7
push 0x4f308c
push 0xe3ec
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e040
add esp, 0x10
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
test esi, esi
je 0x41f85d
mov dl, byte [esp + 0x50]
xor cl, cl
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
cmp dl, 1
jne 0x41f0ef
cmp eax, dword [esp + 0x24]
ja 0x41f101
push 0
lea ecx, [esp + 0x17]
push ecx
push eax
push ebp
call fcn.00440e30
add esp, 0x10
test eax, eax
jne 0x41f9b0
cmp byte [esp + 0x13], 2
jne 0x41f101
mov byte [esp + 0x18], 1
jmp 0x41f101
cmp dl, 2
movzx ecx, cl
mov eax, 1
cmove ecx, eax
mov dword [esp + 0x18], ecx
mov edx, dword [edi + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f11d
call fcn.0043d790
jmp 0x41f122
call fcn.0043e930
add esp, 4
test eax, eax
jne 0x41f9b0
mov ecx, dword [edi + 0x38]
lea edx, [esi - 1]
mov eax, edx
shr eax, 0x18
mov byte [ecx + 0x24], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 0x25], al
mov eax, edx
shr eax, 8
mov byte [ecx + 0x26], al
mov byte [ecx + 0x27], dl
mov edi, edi
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x41f176
mov ecx, dword [ebx + 0x38]
movzx eax, byte [ecx]
movzx esi, byte [ecx + 1]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + 2]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 3]
jmp 0x41f193
mov ecx, dword [edi + 0x38]
movzx eax, byte [ecx + 0x20]
movzx esi, byte [ecx + 0x21]
shl eax, 8
or esi, eax
movzx eax, byte [ecx + 0x22]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x23]
shl esi, 8
or esi, eax
cmp esi, dword [esp + 0x24]
ja 0x41f7d7
push 0
lea eax, [esp + 0x30]
push eax
push esi
push dword [ebp]
call fcn.00462b70
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f7f5
mov edx, dword [esp + 0x2c]
cmp esi, 1
mov dword [esp + 0x34], edi
setne al
dec al
mov ebx, dword [edx + 4]
and al, 0x64
mov ecx, dword [edx + 8]
mov dword [esp + 0x14], ecx
mov dword [ecx + 0x34], ebp
mov byte [ecx + 6], al
mov dword [ecx + 0x38], ebx
mov dword [ecx + 0x44], edx
mov dword [ecx + 0x48], esi
movzx eax, byte [ebx + 4]
movzx ebp, byte [ebx + 5]
shl eax, 8
or ebp, eax
movzx eax, byte [ebx + 6]
shl ebp, 8
or ebp, eax
movzx eax, byte [ebx + 7]
shl ebp, 8
or ebp, eax
jne 0x41f267
cmp byte [esp + 0x18], 0
jne 0x41f267
mov ecx, dword [edx + 0x10]
push edx
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f22b
call fcn.0043d790
jmp 0x41f230
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f7c2
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x28]
mov dword [eax], esi
mov eax, dword [ebx + 0x38]
mov ecx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x44]
mov dword [eax], ebx
xor ebx, ebx
mov dword [esp + 0x14], ebx
jmp 0x41f74b
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x24]
shr eax, 2
sub eax, 2
cmp ebp, eax
ja 0x41f7a4
cmp byte [esp + 0x18], 0
mov edx, dword [esp + 0x4c]
je 0x41f4d7
cmp edx, esi
je 0x41f2a1
mov al, byte [esp + 0x50]
jbe 0x41f4db
cmp al, 2
jne 0x41f4db
mov eax, dword [esp + 0x48]
mov byte [esp + 0x18], 0
mov dword [eax], esi
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
mov edx, dword [ecx + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f2ce
call fcn.0043d790
jmp 0x41f2d3
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f7c2
test ebp, ebp
jne 0x41f351
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x41f30a
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x38]
mov dword [ecx + 0x20], eax
jmp 0x41f74b
mov edx, dword [esi + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f326
call fcn.0043d790
jmp 0x41f32b
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f7c2
mov ecx, dword [esp + 0x14]
xor ebx, ebx
mov dword [esp + 0x14], ebx
mov eax, dword [ecx + 0x38]
mov ecx, dword [esi + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
jmp 0x41f74b
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + 0x38]
movzx eax, byte [ecx + 8]
movzx ebx, byte [ecx + 9]
shl eax, 8
or ebx, eax
movzx eax, byte [ecx + 0xa]
shl ebx, 8
or ebx, eax
movzx eax, byte [ecx + 0xb]
shl ebx, 8
or ebx, eax
cmp ebx, dword [esp + 0x24]
ja 0x41f787
push 0
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x48]
push ebx
push dword [eax]
call fcn.00462b70
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f7c2
mov edx, dword [esp + 0x30]
cmp ebx, 1
push edx
mov esi, dword [edx + 8]
mov eax, dword [edx + 4]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x44]
mov dword [esi + 0x34], eax
setne al
dec al
mov dword [esi + 0x44], edx
and al, 0x64
mov dword [esi + 0x48], ebx
mov byte [esi + 6], al
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f3e1
call fcn.0043d790
jmp 0x41f3e6
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f77a
mov eax, dword [esp + 0x14]
lea edx, [ebp - 1]
mov ecx, dword [esi + 0x38]
mov eax, dword [eax + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
mov eax, edx
mov ecx, dword [esi + 0x38]
shr eax, 0x18
mov byte [ecx + 4], al
mov eax, edx
shr eax, 0x10
mov byte [ecx + 5], al
mov eax, edx
shr eax, 8
mov byte [ecx + 6], al
lea eax, [edx*4]
push eax
mov eax, dword [esp + 0x18]
mov byte [ecx + 7], dl
mov eax, dword [eax + 0x38]
add eax, 0xc
push eax
mov eax, dword [esi + 0x38]
add eax, 8
push eax
call fcn.004c1700
push dword [esi + 0x44]
call fcn.00464ae0
mov esi, dword [esp + 0x30]
add esp, 0x10
test esi, esi
jne 0x41f481
mov ecx, dword [esp + 0x28]
mov eax, ebx
shr eax, 0x18
mov ecx, dword [ecx + 0x38]
mov byte [ecx + 0x20], al
mov eax, ebx
shr eax, 0x10
mov byte [ecx + 0x21], al
mov eax, ebx
shr eax, 8
mov byte [ecx + 0x23], bl
xor ebx, ebx
mov byte [ecx + 0x22], al
mov dword [esp + 0x14], ebx
jmp 0x41f74b
mov edx, dword [esi + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f49d
call fcn.0043d790
jmp 0x41f4a2
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f7c2
mov ecx, dword [esi + 0x38]
mov eax, ebx
shr eax, 0x18
mov byte [ecx], al
mov eax, ebx
shr eax, 0x10
mov byte [ecx + 1], al
mov eax, ebx
shr eax, 8
mov byte [ecx + 3], bl
xor ebx, ebx
mov byte [ecx + 2], al
mov dword [esp + 0x14], ebx
jmp 0x41f74b
mov al, byte [esp + 0x50]
test ebp, ebp
je 0x41f743
test edx, edx
je 0x41f64d
cmp al, 2
jne 0x41f5a8
xor esi, esi
lea edx, [ebx + 0xa]
jmp 0x41f500
movzx ecx, byte [edx - 2]
movzx eax, byte [edx - 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 1]
shl ecx, 8
or ecx, eax
cmp ecx, dword [esp + 0x4c]
jbe 0x41f52e
inc esi
add edx, 4
cmp esi, ebp
jb 0x41f500
mov esi, edi
mov edx, dword [esp + 0x4c]
movzx ecx, byte [ebx + esi*4 + 8]
movzx eax, byte [ebx + esi*4 + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + esi*4 + 0xa]
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + esi*4 + 0xb]
shl ecx, 8
or ecx, eax
cmp ecx, dword [esp + 0x24]
ja 0x41f798
cmp byte [esp + 0x18], 0
je 0x41f57b
cmp ecx, edx
je 0x41f57b
jae 0x41f747
cmp byte [esp + 0x50], 2
jne 0x41f747
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f654
call fcn.0043d790
jmp 0x41f659
movzx edx, byte [ebx + 8]
movzx eax, byte [ebx + 9]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0xa]
shl edx, 8
or edx, eax
movzx eax, byte [ebx + 0xb]
shl edx, 8
or edx, eax
sub edx, dword [esp + 0x4c]
jns 0x41f5de
cmp edx, 0x80000000
jne 0x41f5dc
mov edx, SysReAllocString
jmp 0x41f5de
neg edx
mov esi, 1
cmp ebp, esi
jbe 0x41f52c
jmp 0x41f5f0
movzx eax, byte [ebx + esi*4 + 8]
movzx ecx, byte [ebx + esi*4 + 9]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + esi*4 + 0xa]
shl eax, 8
or eax, ecx
movzx ecx, byte [ebx + esi*4 + 0xb]
shl eax, 8
or eax, ecx
sub eax, dword [esp + 0x4c]
jns 0x41f629
cmp eax, 0x80000000
jne 0x41f627
mov eax, SysReAllocString
jmp 0x41f629
neg eax
cmp eax, edx
mov ecx, esi
cmovge ecx, edi
inc esi
cmp eax, edx
mov edi, ecx
cmovge eax, edx
mov edx, eax
cmp esi, ebp
jb 0x41f5f0
mov dword [esp + 0x1c], edi
mov esi, ecx
mov edi, dword [esp + 0x34]
jmp 0x41f52e
xor esi, esi
jmp 0x41f532
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f7c2
lea ecx, [ebp - 1]
cmp esi, ecx
jae 0x41f675
mov eax, dword [ebx + ebp*4 + 4]
mov dword [ebx + esi*4 + 8], eax
mov ebp, dword [esp + 0x40]
mov eax, ecx
shr eax, 0x18
mov byte [ebx + 4], al
mov eax, ecx
shr eax, 0x10
mov byte [ebx + 5], al
mov eax, ecx
shr eax, 8
mov byte [ebx + 6], al
mov eax, dword [esp + 0x48]
mov byte [ebx + 7], cl
mov esi, dword [eax]
mov eax, dword [ebp + 0x3c]
test eax, eax
je 0x41f6b7
cmp esi, dword [eax]
ja 0x41f6b3
push esi
push eax
call fcn.0044b1d0
add esp, 8
test eax, eax
je 0x41f6b7
xor eax, eax
jmp 0x41f6bc
mov eax, 1
push eax
lea eax, [esp + 0x3c]
push eax
push esi
push dword [ebp]
call fcn.00462b70
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f738
mov ecx, dword [esp + 0x38]
cmp esi, 1
mov ebx, dword [esp + 0x44]
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 4]
mov dword [edx + 0x38], eax
setne al
dec al
mov dword [edx + 0x44], ecx
mov dword [edx + 0x34], ebp
and al, 0x64
mov dword [edx + 0x48], esi
mov byte [edx + 6], al
mov dword [ebx], edx
mov edx, dword [edx + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f719
call fcn.0043d790
jmp 0x41f71e
call fcn.0043e930
mov edi, eax
add esp, 4
test edi, edi
je 0x41f738
mov eax, dword [ebx]
test eax, eax
je 0x41f738
push dword [eax + 0x44]
call fcn.00464ae0
add esp, 4
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x18], 0
jmp 0x41f74f
mov ebx, ecx
jmp 0x41f74b
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41f762
push dword [eax + 0x44]
call fcn.00464ae0
add esp, 4
cmp byte [esp + 0x18], 0
mov dword [esp + 0x20], 0
je 0x41f7c2
mov edi, dword [esp + 0x28]
jmp 0x41f150
push dword [esi + 0x44]
call fcn.00464ae0
add esp, 4
jmp 0x41f7c2
push 0xe462
call fcn.0044fd70
add esp, 4
mov edi, eax
jmp 0x41f7c2
push 0x4f308c
push 0xe4a3
jmp 0x41f7ae
push 0x4f308c
push 0xe440
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e040
mov edi, 0xb
add esp, 0x10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41f7f5
push dword [eax + 0x44]
call fcn.00464ae0
add esp, 4
jmp 0x41f7f5
push 0x4f308c
push 0xe423
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e040
add esp, 0x10
mov edi, 0xb
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41f808
push dword [eax + 0x44]
call fcn.00464ae0
add esp, 4
mov ebx, dword [esp + 0x44]
test edi, edi
jne 0x41f99b
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
cmp word [ecx + 0x1a], 1
jle 0x41f9ab
test eax, eax
je 0x41f831
push ecx
call fcn.00464ae0
add esp, 4
push 0x4f308c
push 0xe506
push str.database_corruption_at_line__d_of___.10s_
push 0xb
mov dword [ebx], 0
call fcn.0041e040
add esp, 0x10
mov eax, 0xb
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov edx, dword [edi + 0x44]
xor eax, eax
cmp byte [ebp + 0x13], al
push edx
sete al
mov ecx, dword [edx + 0x10]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f885
call fcn.0043d790
jmp 0x41f88a
call fcn.0043e930
add esp, 4
test eax, eax
jne 0x41f9b0
mov eax, dword [0x509110]
xor edx, edx
div dword [ebp + 0x20]
inc dword [ebp + 0x2c]
mov esi, dword [ebp + 0x2c]
inc eax
cmp esi, eax
jne 0x41f8ae
inc esi
mov dword [ebp + 0x2c], esi
cmp byte [ebp + 0x11], 0
mov ebx, esi
je 0x41f92d
push esi
push ebp
call fcn.00440f40
mov ebp, dword [esp + 0x30]
add esp, 8
cmp eax, esi
jne 0x41f931
push ebp
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
push esi
push dword [esp + 0x4c]
call fcn.004237c0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f9ae
mov esi, dword [esp + 0x24]
push dword [esi + 0x44]
call fcn.00464b60
push dword [esi + 0x44]
mov edi, eax
call fcn.00464ae0
add esp, 8
test edi, edi
jne 0x41f9ae
mov esi, dword [esp + 0x40]
xor edx, edx
mov eax, dword [0x509110]
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov ebx, dword [esi + 0x2c]
inc eax
cmp ebx, eax
jne 0x41f935
inc ebx
mov dword [esi + 0x2c], ebx
jmp 0x41f935
mov ebp, dword [esp + 0x28]
mov esi, dword [esp + 0x40]
mov eax, dword [esi + 0xc]
push ebp
mov ecx, dword [eax + 0x38]
mov eax, ebx
shr eax, 0x18
mov byte [ecx + 0x1c], al
mov eax, ebx
shr eax, 0x10
mov byte [ecx + 0x1d], al
mov eax, ebx
shr eax, 8
mov byte [ecx + 0x1f], bl
mov ebx, dword [esp + 0x48]
mov byte [ecx + 0x1e], al
mov ecx, dword [esi + 0x2c]
mov eax, dword [esp + 0x4c]
push ebx
push ecx
push esi
mov dword [eax], ecx
call fcn.004237c0
add esp, 0x10
test eax, eax
jne 0x41f9b0
mov eax, dword [ebx]
push dword [eax + 0x44]
call fcn.00464b60
mov edi, eax
add esp, 4
test edi, edi
je 0x41f814
mov eax, dword [ebx]
test eax, eax
je 0x41f99b
push dword [eax + 0x44]
call fcn.00464ae0
add esp, 4
mov eax, edi
mov dword [ebx], 0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
mov byte [eax], 0
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret