Function at 0x41f160
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 0x41f1c7
push 0x4f408c
push 0xe3ec
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e160
add esp, 0x10
lea eax, [ebx + 0xb]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2c
ret
test esi, esi
je 0x41f97d
mov dl, byte [esp + 0x50]
xor cl, cl
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
cmp dl, 1
jne 0x41f20f
cmp eax, dword [esp + 0x24]
ja 0x41f221
push 0
lea ecx, [esp + 0x17]
push ecx
push eax
push ebp
call fcn.00440d20
add esp, 0x10
test eax, eax
jne 0x41fad0
cmp byte [esp + 0x13], 2
jne 0x41f221
mov byte [esp + 0x18], 1
jmp 0x41f221
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 0x41f23d
call fcn.0043d8f0
jmp 0x41f242
call fcn.0043ea90
add esp, 4
test eax, eax
jne 0x41fad0
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
nop
mov dword [esp + 0x20], ebx
test ebx, ebx
je 0x41f296
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 0x41f2b3
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 0x41f8f7
push 0
lea eax, [esp + 0x30]
push eax
push esi
push dword [ebp]
call fcn.00462d80
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f915
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 0x41f387
cmp byte [esp + 0x18], 0
jne 0x41f387
mov ecx, dword [edx + 0x10]
push edx
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f34b
call fcn.0043d8f0
jmp 0x41f350
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f8e2
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 0x41f86b
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x24]
shr eax, 2
sub eax, 2
cmp ebp, eax
ja 0x41f8c4
cmp byte [esp + 0x18], 0
mov edx, dword [esp + 0x4c]
je 0x41f5f7
cmp edx, esi
je 0x41f3c1
mov al, byte [esp + 0x50]
jbe 0x41f5fb
cmp al, 2
jne 0x41f5fb
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 0x41f3ee
call fcn.0043d8f0
jmp 0x41f3f3
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f8e2
test ebp, ebp
jne 0x41f471
mov esi, dword [esp + 0x20]
test esi, esi
jne 0x41f42a
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 0x41f86b
mov edx, dword [esi + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f446
call fcn.0043d8f0
jmp 0x41f44b
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f8e2
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 0x41f86b
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 0x41f8a7
push 0
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0x48]
push ebx
push dword [eax]
call fcn.00462d80
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f8e2
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 0x41f501
call fcn.0043d8f0
jmp 0x41f506
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f89a
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.004c15c0
push dword [esi + 0x44]
call fcn.00464ce0
mov esi, dword [esp + 0x30]
add esp, 0x10
test esi, esi
jne 0x41f5a1
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 0x41f86b
mov edx, dword [esi + 0x44]
push edx
mov ecx, dword [edx + 0x10]
mov eax, dword [ecx + 0x94]
cmp eax, dword [ecx + 0x98]
jbe 0x41f5bd
call fcn.0043d8f0
jmp 0x41f5c2
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f8e2
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 0x41f86b
mov al, byte [esp + 0x50]
test ebp, ebp
je 0x41f863
test edx, edx
je 0x41f76d
cmp al, 2
jne 0x41f6c8
xor esi, esi
lea edx, [ebx + 0xa]
nop dword [eax + eax]
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 0x41f64e
inc esi
add edx, 4
cmp esi, ebp
jb 0x41f620
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 0x41f8b8
cmp byte [esp + 0x18], 0
je 0x41f69b
cmp ecx, edx
je 0x41f69b
jae 0x41f867
cmp byte [esp + 0x50], 2
jne 0x41f867
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 0x41f774
call fcn.0043d8f0
jmp 0x41f779
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 0x41f6fe
cmp edx, 0x80000000
jne 0x41f6fc
mov edx, SysReAllocString
jmp 0x41f6fe
neg edx
mov esi, 1
cmp ebp, esi
jbe 0x41f64c
nop dword [eax + eax]
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 0x41f749
cmp eax, 0x80000000
jne 0x41f747
mov eax, SysReAllocString
jmp 0x41f749
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 0x41f710
mov dword [esp + 0x1c], edi
mov esi, ecx
mov edi, dword [esp + 0x34]
jmp 0x41f64e
xor esi, esi
jmp 0x41f652
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
jne 0x41f8e2
lea ecx, [ebp - 1]
cmp esi, ecx
jae 0x41f795
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 0x41f7d7
cmp esi, dword [eax]
ja 0x41f7d3
push esi
push eax
call fcn.0044b350
add esp, 8
test eax, eax
je 0x41f7d7
xor eax, eax
jmp 0x41f7dc
mov eax, 1
push eax
lea eax, [esp + 0x3c]
push eax
push esi
push dword [ebp]
call fcn.00462d80
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41f858
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 0x41f839
call fcn.0043d8f0
jmp 0x41f83e
call fcn.0043ea90
mov edi, eax
add esp, 4
test edi, edi
je 0x41f858
mov eax, dword [ebx]
test eax, eax
je 0x41f858
push dword [eax + 0x44]
call fcn.00464ce0
add esp, 4
mov ebx, dword [esp + 0x14]
mov byte [esp + 0x18], 0
jmp 0x41f86f
mov ebx, ecx
jmp 0x41f86b
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41f882
push dword [eax + 0x44]
call fcn.00464ce0
add esp, 4
cmp byte [esp + 0x18], 0
mov dword [esp + 0x20], 0
je 0x41f8e2
mov edi, dword [esp + 0x28]
jmp 0x41f270
push dword [esi + 0x44]
call fcn.00464ce0
add esp, 4
jmp 0x41f8e2
push 0xe462
call fcn.0044ff00
add esp, 4
mov edi, eax
jmp 0x41f8e2
push 0x4f408c
push 0xe4a3
jmp 0x41f8ce
push 0x4f408c
push 0xe440
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e160
mov edi, 0xb
add esp, 0x10
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41f915
push dword [eax + 0x44]
call fcn.00464ce0
add esp, 4
jmp 0x41f915
push 0x4f408c
push 0xe423
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.0041e160
add esp, 0x10
mov edi, 0xb
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41f928
push dword [eax + 0x44]
call fcn.00464ce0
add esp, 4
mov ebx, dword [esp + 0x44]
test edi, edi
jne 0x41fabb
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
cmp word [ecx + 0x1a], 1
jle 0x41facb
test eax, eax
je 0x41f951
push ecx
call fcn.00464ce0
add esp, 4
push 0x4f408c
push 0xe506
push str.database_corruption_at_line__d_of___.10s_
push 0xb
mov dword [ebx], 0
call fcn.0041e160
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 0x41f9a5
call fcn.0043d8f0
jmp 0x41f9aa
call fcn.0043ea90
add esp, 4
test eax, eax
jne 0x41fad0
mov eax, dword [0x50a110]
xor edx, edx
div dword [ebp + 0x20]
inc dword [ebp + 0x2c]
mov esi, dword [ebp + 0x2c]
inc eax
cmp esi, eax
jne 0x41f9ce
inc esi
mov dword [ebp + 0x2c], esi
cmp byte [ebp + 0x11], 0
mov ebx, esi
je 0x41fa4d
push esi
push ebp
call fcn.00440e30
mov ebp, dword [esp + 0x30]
add esp, 8
cmp eax, esi
jne 0x41fa51
push ebp
lea eax, [esp + 0x28]
mov dword [esp + 0x28], 0
push eax
push esi
push dword [esp + 0x4c]
call fcn.004238e0
mov edi, eax
add esp, 0x10
test edi, edi
jne 0x41face
mov esi, dword [esp + 0x24]
push dword [esi + 0x44]
call fcn.00464d60
push dword [esi + 0x44]
mov edi, eax
call fcn.00464ce0
add esp, 8
test edi, edi
jne 0x41face
mov esi, dword [esp + 0x40]
xor edx, edx
mov eax, dword [0x50a110]
div dword [esi + 0x20]
inc dword [esi + 0x2c]
mov ebx, dword [esi + 0x2c]
inc eax
cmp ebx, eax
jne 0x41fa55
inc ebx
mov dword [esi + 0x2c], ebx
jmp 0x41fa55
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.004238e0
add esp, 0x10
test eax, eax
jne 0x41fad0
mov eax, dword [ebx]
push dword [eax + 0x44]
call fcn.00464d60
mov edi, eax
add esp, 4
test edi, edi
je 0x41f934
mov eax, dword [ebx]
test eax, eax
je 0x41fabb
push dword [eax + 0x44]
call fcn.00464ce0
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