Function at 0x401870
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xec
mov eax, dword [0x42e43c]
xor eax, esp
mov dword [esp + 0xe8], eax
push ebx
push esi
push edi
lea eax, [esp + 0x1c]
mov ebx, ecx
mov edi, edx
push eax
push 1
mov edx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x2c], edi
call fcn.00401f00
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x401d00
push 0x38
push 0
push edi
call fcn.0040f840
add esp, 0xc
cmp byte [ebx + 0x480], 2
jb 0x401955
cmp byte [ebx + 0x481], 0
jbe 0x401911
movzx ecx, byte [esi]
inc esi
mov byte [edi], cl
movzx edx, byte [esi]
inc esi
mov byte [edi + 1], dl
mov ax, word [esi]
add esi, 2
mov word [edi + 2], ax
movzx ecx, byte [esi]
inc esi
mov byte [edi + 4], cl
movzx edx, byte [esi]
inc esi
mov byte [edi + 5], dl
mov al, byte [esi]
inc esi
mov byte [edi + 6], al
movzx ecx, byte [esi]
inc esi
mov byte [edi + 7], cl
movzx edx, byte [esi]
mov byte [edi + 8], dl
inc esi
cmp byte [ebx + 0x480], 2
jb 0x401955
cmp byte [ebx + 0x481], 1
jbe 0x401938
xor eax, eax
mov cl, byte [esi]
mov byte [edi + eax + 9], cl
inc eax
inc esi
cmp eax, 0x10
jl 0x401925
mov dl, byte [esi]
mov byte [edi + 0x19], dl
inc esi
cmp byte [ebx + 0x480], 2
jb 0x401955
cmp byte [ebx + 0x481], 4
jbe 0x401955
mov al, byte [esi]
mov byte [edi + 0x1a], al
mov cl, byte [esi + 1]
mov byte [edi + 0x1b], cl
movzx edx, byte [edi + 1]
mov al, byte [edi + 4]
add dword [esp + 0x1c], edx
mov byte [esp + 0x10], al
test al, al
je 0x401a05
mov ecx, dword [esp + 0x1c]
xor bl, bl
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
jmp 0x401980
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401980
sub eax, esi
inc bl
lea ecx, [ecx + eax + 1]
cmp bl, byte [esp + 0x10]
jb 0x401972
mov eax, dword [esp + 0x18]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x430], 8
jb 0x4019b1
mov eax, dword [eax + 0x41c]
jmp 0x4019b6
add eax, 0x41c
push eax
lea ecx, [esp + 0x2c]
push 0x64
push ecx
call fcn.0040d6ac
push str._Module:_
lea edx, [esp + 0x38]
push 0x64
push edx
call fcn.0040d5de
push str.BIOS_Data_Manufacturer_successfully_obtained_n
lea eax, [esp + 0x44]
push 0x64
push eax
call fcn.0040d5de
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x434]
add esp, 0x24
lea ecx, [esp + 0x28]
push ecx
mov esi, 0x64
call fcn.00402c20
mov ebx, dword [esp + 0x14]
mov al, byte [edi + 5]
mov byte [esp + 0x10], al
test al, al
je 0x401ab5
mov ecx, dword [esp + 0x1c]
xor bl, bl
lea ebx, [ebx]
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401a30
sub eax, esi
inc bl
lea ecx, [ecx + eax + 1]
cmp bl, byte [esp + 0x10]
jb 0x401a20
mov eax, dword [esp + 0x18]
mov dword [edi + 0x20], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x430], 8
jb 0x401a61
mov eax, dword [eax + 0x41c]
jmp 0x401a66
add eax, 0x41c
push eax
lea ecx, [esp + 0x2c]
push 0x64
push ecx
call fcn.0040d6ac
push str._Module:_
lea edx, [esp + 0x38]
push 0x64
push edx
call fcn.0040d5de
push str.BIOS_Data_Product_Name_successfully_obtained_n
lea eax, [esp + 0x44]
push 0x64
push eax
call fcn.0040d5de
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x434]
add esp, 0x24
lea ecx, [esp + 0x28]
push ecx
mov esi, 0x64
call fcn.00402c20
mov ebx, dword [esp + 0x14]
mov al, byte [edi + 6]
mov byte [esp + 0x10], al
test al, al
je 0x401b65
mov ecx, dword [esp + 0x1c]
xor bl, bl
lea ebx, [ebx]
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401ae0
sub eax, esi
inc bl
lea ecx, [ecx + eax + 1]
cmp bl, byte [esp + 0x10]
jb 0x401ad0
mov eax, dword [esp + 0x18]
mov dword [edi + 0x24], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x430], 8
jb 0x401b11
mov eax, dword [eax + 0x41c]
jmp 0x401b16
add eax, 0x41c
push eax
lea ecx, [esp + 0x2c]
push 0x64
push ecx
call fcn.0040d6ac
push str._Module:_
lea edx, [esp + 0x38]
push 0x64
push edx
call fcn.0040d5de
push str.BIOS_Version_successfully_obtained_n
lea eax, [esp + 0x44]
push 0x64
push eax
call fcn.0040d5de
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x434]
add esp, 0x24
lea ecx, [esp + 0x28]
push ecx
mov esi, 0x64
call fcn.00402c20
mov ebx, dword [esp + 0x14]
mov al, byte [edi + 7]
mov byte [esp + 0x10], al
test al, al
je 0x401c15
mov ecx, dword [esp + 0x1c]
xor bl, bl
lea ebx, [ebx]
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401b90
sub eax, esi
inc bl
lea ecx, [ecx + eax + 1]
cmp bl, byte [esp + 0x10]
jb 0x401b80
mov eax, dword [esp + 0x18]
mov dword [edi + 0x28], eax
mov eax, dword [esp + 0x14]
cmp dword [eax + 0x430], 8
jb 0x401bc1
mov eax, dword [eax + 0x41c]
jmp 0x401bc6
add eax, 0x41c
push eax
lea ecx, [esp + 0x2c]
push 0x64
push ecx
call fcn.0040d6ac
push str._Module:_
lea edx, [esp + 0x38]
push 0x64
push edx
call fcn.0040d5de
push str.BIOS_Data_Serial_Name_successfully_obtained_n
lea eax, [esp + 0x44]
push 0x64
push eax
call fcn.0040d5de
mov edx, dword [esp + 0x38]
mov eax, dword [edx + 0x434]
add esp, 0x24
lea ecx, [esp + 0x28]
push ecx
mov esi, 0x64
call fcn.00402c20
mov ebx, dword [esp + 0x14]
cmp byte [edi + 0x1a], 0
je 0x401cb9
cmp dword [ebx + 0x430], 8
jb 0x401c30
mov eax, dword [ebx + 0x41c]
jmp 0x401c36
lea eax, [ebx + 0x41c]
push eax
lea eax, [esp + 0x2c]
push 0x64
push eax
call fcn.0040d6ac
push str._Module:_
lea ecx, [esp + 0x38]
push 0x64
push ecx
call fcn.0040d5de
push str.BIOS_Data_SKUN_successfully_obtained_n
lea edx, [esp + 0x44]
push 0x64
push edx
call fcn.0040d5de
add esp, 0x24
lea eax, [esp + 0x28]
push eax
mov eax, dword [ebx + 0x434]
mov esi, 0x64
call fcn.00402c20
mov cl, byte [edi + 0x1a]
mov byte [esp + 0x10], cl
mov ecx, dword [esp + 0x1c]
xor dl, dl
lea ebx, [ebx]
mov eax, ecx
mov edi, ecx
lea esi, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x401c97
sub eax, esi
inc dl
lea ecx, [ecx + eax + 1]
cmp dl, byte [esp + 0x10]
jb 0x401c90
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x14]
mov dword [edx + 0x30], edi
mov edi, edx
mov al, byte [edi + 0x1b]
mov byte [esp + 0x10], al
test al, al
je 0x401d00
mov ecx, dword [esp + 0x1c]
xor bl, bl
lea ebx, [ebx]
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401ce0
sub eax, esi
inc bl
lea ecx, [ecx + eax + 1]
cmp bl, byte [esp + 0x10]
jb 0x401cd0
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
mov dword [edi + 0x34], eax
mov edi, ebx
call fcn.00401e60
lea ecx, [esp + 0x1c]
push ecx
push 0
mov edx, ebx
call fcn.00401f00
mov edi, eax
test eax, eax
je 0x401dd1
mov cl, byte [eax + 1]
inc eax
movzx edx, byte [eax + 3]
add eax, 3
inc eax
mov byte [esp + 0x10], dl
movzx edx, byte [eax]
mov byte [esp + 0x22], dl
movzx edx, byte [eax + 3]
movzx ecx, cl
add edi, ecx
mov byte [esp + 0x23], dl
mov ecx, edi
xor dl, dl
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x401d50
sub eax, esi
inc dl
lea ecx, [ecx + eax + 1]
cmp dl, byte [esp + 0x10]
jb 0x401d47
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [ecx + 0x48a], eax
mov ecx, edi
xor dl, dl
mov eax, ecx
mov dword [esp + 0x18], ecx
lea esi, [eax + 1]
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x401d80
sub eax, esi
inc dl
lea ecx, [ecx + eax + 1]
cmp dl, byte [esp + 0x22]
jb 0x401d77
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x14]
mov dword [eax + 0x486], edx
mov ecx, edi
xor dl, dl
mov eax, ecx
mov edi, ecx
lea esi, [eax + 1]
mov edi, edi
mov bl, byte [eax]
inc eax
test bl, bl
jne 0x401db0
sub eax, esi
inc dl
lea ecx, [ecx + eax + 1]
cmp dl, byte [esp + 0x23]
jb 0x401da7
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x48e], edi
mov ebx, ecx
lea edx, [esp + 0x1c]
push edx
push 2
mov edx, ebx
call fcn.00401f00
mov edi, eax
test eax, eax
je 0x401e27
mov cl, byte [eax + 1]
mov esi, dword [esp + 0x24]
inc eax
movzx eax, byte [eax + 7]
mov byte [esi + 8], al
test al, al
je 0x401e0d
movzx edx, cl
push eax
add edx, edi
call fcn.004017e0
mov dword [esi + 0x2c], eax
mov esi, eax
call fcn.00401810
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.0040cf24
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xf4]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0040cf24
mov esp, ebp
pop ebp
ret