Function at 0x41a070
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 0xc]
mov ecx, dword [ebx + 0x38]
movzx esi, byte [ecx + 0x24]
movzx eax, byte [ecx + 0x25]
mov edx, dword [edi + 0x2c]
shl esi, 8
or esi, eax
movzx eax, byte [ecx + 0x26]
movzx ecx, byte [ecx + 0x27]
shl esi, 8
or esi, eax
shl esi, 8
or esi, ecx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], edx
cmp esi, edx
jb 0x41a0e0
push 0x4c917c
push 0xd8da
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00405d90
add esp, 0x10
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x41a74b
mov al, byte [ebp + 0x18]
mov byte [esp + 0xe], 0
cmp al, 1
jne 0x41a11b
mov eax, dword [ebp + 0x14]
cmp eax, edx
ja 0x41a124
lea edx, [esp + 0xf]
push 0
push edx
mov ecx, edi
call fcn.00415a30
add esp, 8
test eax, eax
jne 0x41a87e
cmp byte [esp + 0xf], 2
jmp 0x41a11d
cmp al, 2
jne 0x41a124
mov byte [esp + 0xe], 1
mov eax, dword [ebx + 0x44]
push eax
call fcn.00411850
add esp, 4
test eax, eax
jne 0x41a87e
mov eax, dword [ebx + 0x38]
lea ecx, [esi - 1]
mov edx, ecx
shr edx, 0x18
mov byte [eax + 0x24], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 0x25], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 0x26], dl
mov byte [eax + 0x27], cl
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], eax
test eax, eax
je 0x41a17c
mov eax, dword [eax + 0x38]
movzx esi, byte [eax]
movzx ecx, byte [eax + 1]
movzx edx, byte [eax + 2]
movzx eax, byte [eax + 3]
shl esi, 8
jmp 0x41a192
mov eax, dword [ebx + 0x38]
movzx ecx, byte [eax + 0x20]
movzx esi, byte [eax + 0x21]
movzx edx, byte [eax + 0x22]
movzx eax, byte [eax + 0x23]
shl ecx, 8
or esi, ecx
shl esi, 8
or esi, edx
shl esi, 8
or esi, eax
cmp esi, dword [esp + 0x28]
ja 0x41a667
mov edx, dword [edi]
push 0
lea ecx, [esp + 0x34]
push ecx
push esi
push edx
call fcn.00411050
add esp, 0x10
test eax, eax
jne 0x41a68a
mov eax, dword [esp + 0x30]
mov ebx, dword [eax + 8]
mov ecx, dword [eax + 4]
cmp esi, 1
setne dl
mov dword [ebx + 0x38], ecx
mov ecx, dword [ebp + 8]
dec dl
and dl, 0x64
mov byte [ebx + 5], dl
mov dword [ebx + 0x44], eax
mov dword [ebx + 0x34], ecx
mov dword [ebx + 0x48], esi
mov eax, dword [ebx + 0x38]
movzx edx, byte [eax + 4]
movzx edi, byte [eax + 5]
shl edx, 8
or edi, edx
movzx edx, byte [eax + 6]
shl edi, 8
mov dword [esp + 0x18], eax
movzx eax, byte [eax + 7]
or edi, edx
shl edi, 8
or edi, eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0x2c], edi
jne 0x41a267
cmp byte [esp + 0xe], 0
jne 0x41a267
mov ecx, dword [ebx + 0x44]
push ecx
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax]
mov dword [edx], esi
mov edx, dword [ecx + 0x38]
mov ecx, dword [ebp + 0xc]
mov dword [edx + 0x20], eax
mov dword [ecx], ebx
mov dword [esp + 0x1c], 0
jmp 0x41a63c
mov edx, dword [ecx + 0x24]
shr edx, 2
sub edx, 2
cmp edi, edx
ja 0x41a690
cmp byte [esp + 0xe], 0
je 0x41a447
mov eax, dword [ebp + 0x14]
cmp esi, eax
je 0x41a29a
jae 0x41a447
cmp byte [ebp + 0x18], 2
jne 0x41a447
mov edx, dword [ebx + 0x44]
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push edx
mov dword [eax], esi
mov dword [ecx], ebx
mov byte [esp + 0x12], 0
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
test edi, edi
jne 0x41a318
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41a2e5
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x38]
mov eax, dword [eax]
mov dword [edx + 0x20], eax
mov dword [esp + 0x1c], edi
jmp 0x41a63c
mov ecx, dword [eax + 0x44]
push ecx
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
mov edx, dword [ebx + 0x38]
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + 0x38]
mov edx, dword [edx]
mov dword [ecx], edx
mov dword [esp + 0x1c], 0
jmp 0x41a63c
mov ecx, dword [ebx + 0x38]
add ecx, 8
call fcn.004075e0
mov dword [esp + 0x18], eax
cmp eax, dword [esp + 0x28]
ja 0x41a71f
mov esi, dword [esp + 0x18]
mov edi, dword [ebp + 8]
lea eax, [esp + 0x34]
push eax
xor eax, eax
call fcn.004166f0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
mov esi, dword [esp + 0x34]
mov ecx, dword [esi + 0x44]
push ecx
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a72f
mov edx, dword [ebx + 0x38]
mov ecx, dword [edx]
mov eax, dword [esi + 0x38]
mov dword [eax], ecx
mov ecx, dword [esp + 0x2c]
mov eax, dword [esi + 0x38]
dec ecx
mov edx, ecx
shr edx, 0x18
mov byte [eax + 4], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 5], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 6], dl
mov byte [eax + 7], cl
mov edx, dword [esi + 0x38]
lea eax, [ecx*4]
mov ecx, dword [ebx + 0x38]
push eax
add ecx, 0xc
push ecx
add edx, 8
push edx
call fcn.0049d5c0
mov eax, dword [esi + 0x44]
add esp, 0xc
call fcn.004113b0
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x41a3fd
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x38]
mov edx, ecx
shr edx, 0x18
mov byte [eax + 0x20], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 0x21], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 0x22], dl
mov byte [eax + 0x23], cl
mov dword [esp + 0x1c], 0
jmp 0x41a63c
mov eax, dword [eax + 0x44]
push eax
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x38]
mov ecx, dword [esp + 0x18]
mov edx, ecx
shr edx, 0x18
mov byte [eax], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 1], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 2], dl
mov byte [eax + 3], cl
mov dword [esp + 0x1c], 0
jmp 0x41a63c
test edi, edi
je 0x41a63c
xor esi, esi
cmp dword [ebp + 0x14], esi
jbe 0x41a532
cmp byte [ebp + 0x18], 2
mov dword [esp + 0x24], esi
jne 0x41a4b0
xor ecx, ecx
test edi, edi
je 0x41a532
mov eax, dword [esp + 0x18]
add eax, 0xa
movzx edx, byte [eax - 2]
movzx esi, byte [eax - 1]
shl edx, 8
or edx, esi
movzx esi, byte [eax]
shl edx, 8
or edx, esi
movzx esi, byte [eax + 1]
shl edx, 8
or edx, esi
cmp edx, dword [ebp + 0x14]
jbe 0x41a4a9
inc ecx
add eax, 4
cmp ecx, edi
jb 0x41a475
mov esi, dword [esp + 0x24]
jmp 0x41a532
mov esi, ecx
jmp 0x41a532
mov ecx, dword [esp + 0x18]
add ecx, 8
call fcn.004075e0
sub eax, dword [ebp + 0x14]
call fcn.004078d0
mov dword [esp + 0x2c], eax
mov eax, 1
cmp edi, eax
jbe 0x41a532
mov edx, dword [esp + 0x18]
add edx, 0xe
jmp 0x41a4e0
movzx ecx, byte [edx - 2]
movzx esi, byte [edx - 1]
shl ecx, 8
or ecx, esi
movzx esi, byte [edx]
shl ecx, 8
or ecx, esi
movzx esi, byte [edx + 1]
shl ecx, 8
or ecx, esi
sub ecx, dword [ebp + 0x14]
jns 0x41a514
cmp ecx, 0x80000000
jne 0x41a512
mov ecx, bind
jmp 0x41a514
neg ecx
cmp ecx, dword [esp + 0x2c]
jge 0x41a526
mov esi, eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], ecx
jmp 0x41a52a
mov esi, dword [esp + 0x24]
inc eax
add edx, 4
cmp eax, edi
jb 0x41a4e0
mov ecx, dword [esp + 0x18]
movzx eax, byte [ecx + esi*4 + 8]
movzx edx, byte [ecx + esi*4 + 9]
shl eax, 8
or eax, edx
movzx edx, byte [ecx + esi*4 + 0xa]
movzx ecx, byte [ecx + esi*4 + 0xb]
shl eax, 8
or eax, edx
shl eax, 8
or eax, ecx
cmp eax, dword [esp + 0x28]
ja 0x41a73c
cmp byte [esp + 0xe], 0
je 0x41a581
mov ecx, dword [ebp + 0x14]
cmp eax, ecx
je 0x41a581
jae 0x41a63c
cmp byte [ebp + 0x18], 2
jne 0x41a63c
mov edx, dword [ebp + 0x10]
mov dword [edx], eax
mov eax, dword [ebx + 0x44]
push eax
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a6b1
mov ecx, dword [esp + 0x18]
lea eax, [edi - 1]
cmp esi, eax
jae 0x41a5b1
mov edx, dword [ecx + edi*4 + 4]
mov dword [ecx + esi*4 + 8], edx
mov edx, eax
shr edx, 0x18
mov byte [ecx + 4], dl
mov edx, eax
shr edx, 0x10
mov byte [ecx + 5], dl
mov edx, eax
shr edx, 8
mov byte [ecx + 7], al
mov eax, dword [ebp + 0x10]
mov esi, dword [eax]
mov byte [ecx + 6], dl
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x3c]
test ecx, ecx
je 0x41a5f1
cmp esi, dword [ecx]
ja 0x41a5ea
mov eax, esi
call fcn.0040b540
test eax, eax
je 0x41a5f1
mov eax, 1
jmp 0x41a5f3
xor eax, eax
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
xor edx, edx
test eax, eax
sete dl
push ebx
mov eax, edx
call fcn.004166f0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
jne 0x41a637
mov eax, dword [ebx]
mov ecx, dword [eax + 0x44]
push ecx
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x41a637
mov ebx, dword [ebx]
test ebx, ebx
je 0x41a637
mov eax, dword [ebx + 0x44]
call fcn.004113b0
mov byte [esp + 0xe], 0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41a64c
mov eax, dword [eax + 0x44]
call fcn.004113b0
cmp byte [esp + 0xe], 0
mov dword [esp + 0x14], 0
je 0x41a6b1
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x20]
jmp 0x41a159
push 0x4c917c
push 0xd90b
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00405d90
add esp, 0x10
mov dword [esp + 0x10], 0xb
jmp 0x41a6c1
mov dword [esp + 0x10], eax
jmp 0x41a6c1
push 0x4c917c
push 0xd927
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00405d90
add esp, 0x10
mov dword [esp + 0x10], 0xb
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x41a6c1
mov eax, dword [eax + 0x44]
call fcn.004113b0
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41a6d1
mov eax, dword [eax + 0x44]
call fcn.004113b0
cmp dword [esp + 0x10], 0
jne 0x41a871
mov eax, dword [ebp + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x44]
cmp word [ecx + 0x1a], 1
jle 0x41a863
test eax, eax
je 0x41a6fa
mov eax, ecx
call fcn.004113b0
push 0x4c917c
push 0xd9ec
push str.database_corruption_at_line__d_of___.10s_
push 0xb
call fcn.00405d90
add esp, 0x10
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xd949
call fcn.00472f10
mov dword [esp + 0x10], eax
jmp 0x41a6b1
mov eax, dword [esi + 0x44]
call fcn.004113b0
jmp 0x41a6b1
push 0x4c917c
push 0xd98a
jmp 0x41a69a
mov eax, dword [ebx + 0x44]
xor edx, edx
cmp byte [edi + 0x13], dl
push eax
sete dl
mov dword [esp + 0x2c], edx
call fcn.00411850
add esp, 4
test eax, eax
jne 0x41a87e
mov eax, dword [0x4d7828]
xor edx, edx
div dword [edi + 0x20]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
inc eax
cmp ecx, eax
jne 0x41a784
inc ecx
mov dword [edi + 0x2c], ecx
cmp byte [edi + 0x11], 0
je 0x41a7f7
mov esi, dword [edi + 0x2c]
mov ecx, esi
call fcn.004158b0
cmp eax, esi
jne 0x41a7f7
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], 0
call fcn.004166f0
mov esi, eax
add esp, 4
test esi, esi
jne 0x41a7d5
mov ebx, dword [esp + 0x2c]
mov edx, dword [ebx + 0x44]
push edx
call fcn.00411850
mov esi, eax
mov eax, dword [ebx + 0x44]
add esp, 4
call fcn.004113b0
test esi, esi
je 0x41a7de
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x4d7828]
xor edx, edx
div dword [edi + 0x20]
inc dword [edi + 0x2c]
mov ecx, dword [edi + 0x2c]
inc eax
cmp ecx, eax
jne 0x41a7f7
inc ecx
mov dword [edi + 0x2c], ecx
mov ecx, dword [edi + 0x2c]
mov eax, dword [edi + 0xc]
mov eax, dword [eax + 0x38]
mov ebx, dword [ebp + 0xc]
mov edx, ecx
shr edx, 0x18
mov byte [eax + 0x1c], dl
mov edx, ecx
shr edx, 0x10
mov byte [eax + 0x1d], dl
mov edx, ecx
shr edx, 8
mov byte [eax + 0x1e], dl
mov byte [eax + 0x1f], cl
mov esi, dword [edi + 0x2c]
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
mov eax, dword [esp + 0x28]
push ebx
call fcn.004166f0
add esp, 4
test eax, eax
jne 0x41a87e
mov ecx, dword [ebx]
mov edx, dword [ecx + 0x44]
push edx
call fcn.00411850
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
je 0x41a6dc
mov ebx, dword [ebx]
test ebx, ebx
je 0x41a6d1
mov eax, dword [ebx + 0x44]
jmp 0x41a6cc
mov byte [eax], 0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x10]
mov dword [edx], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret