Function at 0x40bdc4
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4584c8]
xor eax, ebp
mov dword [ebp - 4], eax
inc word [0x45d622]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x30], edi
mov esi, dword [edi + 4]
movzx eax, byte [esi]
dec eax
sub eax, 1
je 0x40c81b
sub eax, 0x84
je 0x40c54a
sub eax, 1
je 0x40c25a
sub eax, 1
je 0x40c070
sub eax, 1
je 0x40be2c
inc word [0x45d630]
inc word [0x45d626]
jmp 0x40c8a6
cmp word [edi + 0xa], 0x28
jae 0x40be4c
push edi
call fcn.00406ae1
inc word [0x45d62a]
inc word [0x45d626]
jmp 0x40c8ac
mov ecx, dword [esi + 0x18]
xor edx, edx
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x18], ecx
and ecx, 0xc0ff
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x38], edx
cmp ecx, 0x80fe
je 0x40be7c
mov byte [ebp - 8], dl
jmp 0x40be87
mov al, byte [ebx + 0xba]
inc al
mov byte [ebp - 8], al
mov eax, dword [0x45daf4]
and eax, 0xc0ff
cmp eax, 0x80fe
jne 0x40c05e
mov eax, dword [0x45daec]
cmp byte [eax + 7], 0xff
jne 0x40c05e
cmp byte [esi + 1], dl
jne 0x40c05e
cmp byte [ebp - 0x18], 0xff
je 0x40c05e
cmp word [edi + 0xa], 0x2a
jb 0x40bee8
and dword [ebp - 0x20], 0
lea edx, [esi + 0x28]
movzx eax, byte [edx + 1]
lea ecx, [eax*8 + 0x28]
movzx eax, word [edi + 0xa]
cmp eax, ecx
mov eax, dword [ebp - 0x20]
cmovae eax, edx
mov dword [ebp - 0x20], eax
jmp 0x40beeb
mov dword [ebp - 0x20], edx
lea eax, [ebp - 0x18]
push eax
call fcn.0040bab2
mov byte [ebp - 0x1a], al
pop ecx
test al, al
js 0x40c8a6
mov eax, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x10]
mov esi, dword [esi + 0x14]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x10], eax
mov eax, edx
and eax, 0xc0ff
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x34], esi
mov dword [ebp - 0xc], esi
cmp eax, 0x80fe
je 0x40bf39
xor ecx, ecx
mov byte [ebp - 8], cl
jmp 0x40bf49
mov al, byte [ebx + 0xba]
inc al
mov dword [ebp - 0x38], eax
mov ecx, eax
mov byte [ebp - 8], al
movsx eax, byte [ebp - 0x1a]
imul eax, eax, 0x30
mov dword [eax + 0x45d734], edx
mov edx, dword [ebp - 0x30]
mov dword [eax + 0x45d738], edx
mov edx, dword [ebp - 0x2c]
mov dword [eax + 0x45d740], esi
mov esi, dword [ebp - 0x20]
mov dword [eax + 0x45d73c], edx
mov byte [eax + 0x45d744], cl
test esi, esi
je 0x40c8a6
cmp byte [esi], 2
jne 0x40c8a6
lea eax, [ebp - 0x18]
push eax
call fcn.0040bb09
pop ecx
test al, al
jns 0x40c014
call fcn.0040c8be
mov byte [ebp - 0x1a], al
test al, al
js 0x40c8a6
movsx eax, al
imul esi, eax, 0x2c
mov dword [esi + 0x45d914], ebx
movzx eax, byte [ebx + 0xb4]
push eax
mov eax, dword [ebp - 0x20]
add eax, 2
push eax
lea eax, [esi + 0x45d918]
push eax
call fcn.00416b10
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov dword [esi + 0x45d900], eax
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x45d904], eax
mov eax, dword [ebp - 0x2c]
mov dword [esi + 0x45d908], eax
mov eax, dword [ebp - 0x34]
mov dword [esi + 0x45d90c], eax
mov eax, dword [ebp - 0x38]
mov byte [esi + 0x45d910], al
mov al, byte [ebp - 0x1a]
mov byte [esi + 0x45d924], 4
mov dword [esi + 0x45d928], 5
mov esi, dword [ebp - 0x20]
movsx eax, al
imul ecx, eax, 0x2c
mov dword [ebp - 0x24], ecx
cmp byte [ecx + 0x45d924], 1
jne 0x40c8a6
movzx eax, byte [ebx + 0xb4]
push eax
lea eax, [esi + 2]
push eax
lea eax, [ecx + 0x45d918]
push eax
call fcn.00416b10
mov eax, dword [ebp - 0x24]
add esp, 0xc
mov byte [eax + 0x45d924], 4
mov dword [eax + 0x45d928], 5
jmp 0x40c8a6
push edi
call fcn.00406ae1
inc word [0x45d630]
jmp 0x40be40
movzx edx, word [edi + 0xa]
cmp edx, 0x18
jb 0x40be33
mov ecx, dword [esi + 0xc]
mov eax, dword [esi + 8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x10], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x18], eax
and eax, 0xc0ff
mov dword [ebp - 0xc], ecx
xor ecx, ecx
cmp eax, 0x80fe
je 0x40c0a7
mov al, cl
jmp 0x40c0af
mov al, byte [ebx + 0xba]
inc al
mov byte [ebp - 8], al
mov byte [ebp - 0x19], al
mov eax, dword [0x45daec]
cmp byte [eax + 7], 0xff
jne 0x40c05e
cmp byte [esi + 1], cl
jne 0x40c05e
cmp byte [ebp - 0x18], 0xff
je 0x40c05e
cmp byte [0x45db0c], 0xff
jne 0x40c1b5
mov byte [ebp - 0x20], cl
movsx eax, cl
mov dword [ebp - 0x24], eax
mov al, byte [eax + ebx + 0x94]
test al, al
je 0x40c133
cmp al, 0x40
je 0x40c133
imul eax, dword [ebp - 0x24], 0x18
mov edi, dword [esi + 8]
cmp edi, dword [eax + ebx + 0x4c]
mov edi, dword [ebp - 0x30]
jne 0x40c133
mov edx, dword [esi + 0xc]
cmp edx, dword [eax + ebx + 0x50]
movzx edx, word [edi + 0xa]
jne 0x40c133
mov edi, dword [esi + 0x10]
cmp edi, dword [eax + ebx + 0x54]
mov edi, dword [ebp - 0x30]
jne 0x40c133
mov edx, dword [esi + 0x14]
cmp edx, dword [eax + ebx + 0x58]
movzx edx, word [edi + 0xa]
jne 0x40c133
mov dl, byte [ebp - 0x19]
cmp dl, byte [eax + ebx + 0x5c]
movzx edx, word [edi + 0xa]
je 0x40c19e
inc cl
mov byte [ebp - 0x20], cl
cmp cl, 3
jl 0x40c0db
cmp dx, 0x1a
jb 0x40be33
movzx eax, byte [esi + 0x19]
lea ecx, [eax*8 + 0x18]
movzx eax, dx
cmp eax, ecx
jb 0x40be33
lea eax, [ebp - 0x18]
push eax
call fcn.0040bb09
pop ecx
test al, al
js 0x40c8a6
test byte [esi + 4], 0x20
je 0x40c8a6
movzx ecx, byte [ebx + 0xb4]
movsx eax, al
imul eax, eax, 0x2c
push ecx
lea ecx, [esi + 0x1a]
push ecx
add eax, 0x45d918
push eax
call fcn.00416b10
add esp, 0xc
jmp 0x40c8a6
push dword [ebp - 0x20]
push ebx
call fcn.0040ba9d
push edi
call fcn.00406ae1
add esp, 0xc
jmp 0x40c8ad
lea eax, [ebp - 0x18]
push eax
call fcn.0040bb09
mov byte [ebp - 0x20], al
pop ecx
test al, al
js 0x40c8a6
test byte [esi + 4], 0x20
jne 0x40c1df
movsx eax, al
imul ecx, eax, 0x2c
cmp byte [ecx + 0x45d924], 1
jne 0x40c227
movzx edx, word [edi + 0xa]
cmp edx, 0x1a
jb 0x40be33
movzx eax, byte [esi + 0x19]
lea ecx, [eax*8 + 0x18]
cmp edx, ecx
jb 0x40be33
movsx eax, byte [ebp - 0x20]
imul ecx, eax, 0x2c
movzx eax, byte [ebx + 0xb4]
push eax
lea eax, [esi + 0x1a]
push eax
mov dword [ebp - 0x24], ecx
lea eax, [ecx + 0x45d918]
push eax
call fcn.00416b10
mov ecx, dword [ebp - 0x24]
add esp, 0xc
cmp dword [ecx + 0x45d920], 0
mov eax, dword [0x458008]
mov dword [ecx + 0x45d914], ebx
mov byte [ecx + 0x45d924], 2
mov dword [ecx + 0x45d928], eax
je 0x40c8a6
push dword [ebp - 0x20]
call fcn.0040d0d6
pop ecx
jmp 0x40c8a6
movzx edx, word [edi + 0xa]
push 0x18
pop eax
cmp dx, ax
jb 0x40be33
mov eax, dword [esi + 8]
mov dword [ebp - 0x18], eax
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x10], ecx
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x24], eax
and eax, 0xc0ff
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 0xc], ecx
xor ecx, ecx
mov dword [ebp - 0x38], ecx
cmp eax, 0x80fe
je 0x40c2a9
mov al, cl
mov byte [ebp - 0x1a], al
mov byte [ebp - 8], al
jmp 0x40c2bb
mov dl, byte [ebx + 0xba]
inc dl
mov byte [ebp - 0x1a], dl
mov byte [ebp - 8], dl
movzx edx, word [edi + 0xa]
mov eax, dword [0x45daec]
cmp byte [eax + 7], 0xff
jne 0x40c05e
cmp byte [esi + 1], cl
jne 0x40c05e
cmp byte [ebp - 0x18], 0xff
je 0x40c05e
cmp dx, 0x1a
jb 0x40c303
lea edx, [esi + 0x18]
xor esi, esi
movzx eax, byte [edx + 1]
lea ecx, [eax*8 + 0x18]
movzx eax, word [edi + 0xa]
cmp eax, ecx
cmovae esi, edx
xor ecx, ecx
mov dword [ebp - 0x28], esi
jmp 0x40c308
mov esi, ecx
mov dword [ebp - 0x28], ecx
mov al, cl
mov byte [ebp - 0x19], al
movsx edx, al
mov dword [ebp - 0x20], edx
mov dl, byte [edx + ebx + 0x94]
test dl, 0x10
jne 0x40c348
test dl, 8
je 0x40c37c
cmp dword [0x45daf4], 0
jne 0x40c37c
cmp dword [0x45daf8], 0
jne 0x40c37c
cmp dword [0x45dafc], 0
jne 0x40c37c
cmp dword [0x45db00], 0
jne 0x40c37c
imul edx, dword [ebp - 0x20], 0x18
mov eax, dword [ebp - 0x24]
cmp eax, dword [edx + ebx + 0x4c]
jne 0x40c379
mov eax, dword [ebp - 0x2c]
cmp eax, dword [edx + ebx + 0x50]
jne 0x40c379
mov eax, dword [ebp - 0x34]
cmp eax, dword [edx + ebx + 0x54]
jne 0x40c379
mov eax, dword [ebp - 0x3c]
cmp eax, dword [edx + ebx + 0x58]
jne 0x40c379
mov al, byte [ebp - 0x1a]
cmp al, byte [edx + ebx + 0x5c]
je 0x40c38a
mov al, byte [ebp - 0x19]
inc al
mov byte [ebp - 0x19], al
cmp al, 3
jl 0x40c30d
jmp 0x40c8a6
cmp dword [0x45daf4], 0
jne 0x40c45f
cmp dword [0x45daf8], 0
jne 0x40c45f
cmp dword [0x45dafc], 0
jne 0x40c45f
cmp dword [0x45db00], 0
jne 0x40c45f
mov edi, dword [ebp - 0x24]
lea edx, [ebx + 0x94]
mov byte [ebp - 0x20], cl
lea esi, [ebx + 0x54]
mov dword [ebp - 0x28], edx
cmp byte [edx], 0
je 0x40c43f
cmp edi, dword [esi - 8]
jne 0x40c43f
mov edx, dword [ebp - 0x2c]
cmp edx, dword [esi - 4]
mov edx, dword [ebp - 0x28]
jne 0x40c43f
mov edx, dword [ebp - 0x34]
cmp edx, dword [esi]
mov edx, dword [ebp - 0x28]
jne 0x40c43f
mov edx, dword [ebp - 0x3c]
cmp edx, dword [esi + 4]
mov edx, dword [ebp - 0x28]
jne 0x40c43f
cmp al, byte [esi + 8]
jne 0x40c43f
push 0x22
lea eax, [esi - 8]
push eax
push ebx
call fcn.0040cda7
mov edx, dword [ebp - 0x28]
add esp, 0xc
test byte [edx], 8
je 0x40c424
push dword [ebp - 0x20]
push ebx
call fcn.0040ba9d
mov edx, dword [ebp - 0x28]
pop ecx
pop ecx
mov ecx, dword [ebp - 0xc]
mov edi, dword [ebp - 0x18]
mov al, byte [ebp - 8]
mov dword [ebp - 0x3c], ecx
mov ecx, dword [ebp - 0x10]
mov dword [ebp - 0x34], ecx
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x2c], ecx
mov ecx, dword [ebp - 0x38]
inc cl
add esi, 0x18
inc edx
mov dword [ebp - 0x38], ecx
mov byte [ebp - 0x20], cl
mov dword [ebp - 0x28], edx
cmp cl, 3
jl 0x40c3d0
mov edi, dword [ebp - 0x30]
jmp 0x40c8a6
test esi, esi
je 0x40c05e
push 0x45daf4
call fcn.0040bb09
pop ecx
test al, al
js 0x40c4ac
movsx eax, al
imul esi, eax, 0x2c
cmp byte [esi + 0x45d924], 1
jne 0x40c539
mov dword [esi + 0x45d914], ebx
movzx eax, byte [ebx + 0xb4]
push eax
mov eax, dword [ebp - 0x28]
add eax, 2
push eax
lea eax, [esi + 0x45d918]
push eax
call fcn.00416b10
jmp 0x40c525
call fcn.0040c8be
test al, al
jns 0x40c4c7
push edi
call fcn.00406ae1
inc word [0x45d62c]
jmp 0x40c8ac
movsx eax, al
imul esi, eax, 0x2c
mov dword [esi + 0x45d914], ebx
movzx eax, byte [ebx + 0xb4]
push eax
mov eax, dword [ebp - 0x28]
add eax, 2
push eax
lea eax, [esi + 0x45d918]
push eax
call fcn.00416b10
mov eax, dword [0x45daf4]
mov dword [esi + 0x45d900], eax
mov eax, dword [0x45daf8]
mov dword [esi + 0x45d904], eax
mov eax, dword [0x45dafc]
mov dword [esi + 0x45d908], eax
mov eax, dword [0x45db00]
mov dword [esi + 0x45d90c], eax
mov al, byte [0x45db04]
mov byte [esi + 0x45d910], al
mov dword [esi + 0x45d928], 5
add esp, 0xc
mov byte [esi + 0x45d924], 4
push 0x60
lea eax, [ebp - 0x18]
push eax
push ebx
call fcn.0040cda7
jmp 0x40c196
push 0x10
pop eax
mov dword [ebp - 0x30], eax
cmp word [edi + 0xa], ax
jb 0x40be33
mov eax, dword [0x45daf4]
and eax, 0xc0ff
cmp eax, 0x80fe
jne 0x40c05e
mov eax, dword [0x45daec]
cmp byte [eax + 7], 0xff
jne 0x40c05e
cmp byte [esi + 1], 0
jne 0x40c05e
xor eax, eax
cmp byte [ebx + 0xbb], 3
jb 0x40c5a0
push ebx
call fcn.0040d1b5
pop ecx
test al, al
jne 0x40c5a6
xor eax, eax
mov byte [ebx + 0xbb], al
push ebx
push 0x45daf4
call fcn.0040bd5d
pop ecx
pop ecx
test al, al
jns 0x40c5cc
push ebx
push 0x45daf4
call fcn.0040ca9e
pop ecx
pop ecx
test al, al
js 0x40c4b5
movsx eax, al
imul edx, eax, 0xc
movzx eax, word [esi + 6]
push eax
mov dword [ebp - 0x2c], edx
call fcn.00409815
movzx eax, ax
mov dword [edx + 0x45d644], eax
cmp dword [esi + 0xc], 0
pop ecx
jbe 0x40c5fd
push dword [esi + 0xc]
call fcn.004075a1
pop ecx
mov dword [0x45800c], eax
cmp dword [esi + 8], 0
jbe 0x40c611
push dword [esi + 8]
call fcn.004075a1
pop ecx
mov dword [0x458008], eax
mov al, byte [esi + 5]
mov byte [edx + 0x45d648], al
cmp word [edi + 8], 0x12
jb 0x40c8a6
push 0x10
pop esi
lea eax, [esi + 1]
push eax
push edi
call fcn.00406e52
pop ecx
pop ecx
test eax, eax
jle 0x40c80f
movzx eax, al
mov dword [ebp - 0x34], eax
shl eax, 3
movzx edx, ax
movzx eax, word [edi + 8]
movzx ecx, si
mov dword [ebp - 0x24], ecx
mov ecx, eax
sub ecx, dword [ebp - 0x24]
cmp edx, ecx
jg 0x40c80f
movzx eax, word [edi + 8]
cmp word [edi + 0xa], ax
jne 0x40c671
mov esi, dword [edi + 4]
add esi, dword [ebp - 0x24]
jmp 0x40c6a8
push 0x20
pop eax
cmp dx, ax
jbe 0x40c68f
push esi
push edi
call fcn.00406b8a
pop ecx
pop ecx
cmp al, 0x19
jne 0x40c80f
push 0x20
pop eax
mov edx, eax
mov eax, dword [ebp - 0x30]
mov ecx, 0x45a304
push eax
push edx
push ecx
push edi
mov esi, ecx
call fcn.00406a24
add esp, 0x10
movzx edx, ax
movzx eax, byte [esi]
sub eax, 1
je 0x40c79e
dec eax
sub eax, 1
je 0x40c701
dec eax
sub eax, 1
je 0x40c6d5
sub eax, 0x13
je 0x40c7ec
inc word [0x45d630]
jmp 0x40c7ec
push 8
pop eax
cmp dx, ax
jb 0x40c80f
push dword [esi + 4]
call fcn.004075a1
pop ecx
cmp eax, 0x500
jb 0x40c7ec
mov word [ebx + 0xac], ax
jmp 0x40c7ec
push 0x20
pop eax
cmp dx, ax
jb 0x40c80f
mov ecx, dword [esi + 0x10]
mov edx, 0x80fe
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ebp - 0x18], ecx
and ecx, 0xc0ff
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0xc], eax
cmp ecx, edx
je 0x40c73a
mov byte [ebp - 8], 0
jmp 0x40c745
mov al, byte [ebx + 0xba]
inc al
mov byte [ebp - 8], al
cmp ecx, edx
je 0x40c7ec
cmp byte [esi + 3], 0
jge 0x40c7ec
cmp byte [esi + 2], 0x40
jne 0x40c7ec
push dword [esi + 4]
call fcn.004075a1
mov esi, eax
lea eax, [ebp - 0x18]
push ebx
push eax
call fcn.0040bd0f
add esp, 0xc
test al, al
jns 0x40c790
test esi, esi
je 0x40c78c
lea eax, [ebp - 0x18]
push ebx
push eax
call fcn.0040ca13
pop ecx
pop ecx
test al, al
js 0x40c7ec
movsx eax, al
imul eax, eax, 0x1c
mov dword [eax + 0x45d698], esi
jmp 0x40c7ec
push 8
pop eax
cmp dx, ax
jb 0x40c80f
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax + 0x45d640]
test ecx, ecx
je 0x40c7ec
cmp byte [ecx + 0x24], 1
jne 0x40c7ec
movzx eax, byte [ebx + 0xb4]
push eax
lea eax, [esi + 2]
push eax
lea eax, [ecx + 0x18]
push eax
call fcn.00416b10
mov ecx, dword [ebp - 0x2c]
add esp, 0xc
mov eax, dword [ecx + 0x45d640]
mov byte [eax + 0x24], 2
mov ecx, dword [ecx + 0x45d640]
mov eax, dword [0x458008]
mov dword [ecx + 0x28], eax
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x34]
movzx ecx, word [edi + 8]
lea esi, [esi + eax*8]
movzx eax, si
sub ecx, eax
mov dword [ebp - 0x30], esi
cmp ecx, 2
jge 0x40c628
jmp 0x40c8a6
inc word [0x45d62a]
jmp 0x40be20
cmp word [edi + 0xa], 0x30
jb 0x40be33
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x20]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x10], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0xc], eax
mov eax, ecx
and eax, 0xc0ff
mov dword [ebp - 0x18], ecx
cmp eax, 0x80fe
je 0x40c868
and ecx, 0x8fff
cmp ecx, 0x1ff
je 0x40c868
cmp ecx, 0x2ff
je 0x40c868
mov byte [ebp - 8], 0
jmp 0x40c873
mov al, byte [ebx + 0xba]
inc al
mov byte [ebp - 8], al
lea eax, [ebp - 0x18]
push eax
call fcn.0040bab2
mov bl, al
pop ecx
test bl, bl
js 0x40c8a6
push dword [esi + 4]
call fcn.004075a1
mov edx, 0xffff
cmp eax, edx
pop ecx
movzx ecx, ax
cmovb edx, ecx
movsx eax, bl
imul eax, eax, 0x30
mov word [eax + 0x45d748], dx
push edi
call fcn.00406ae1
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004146ec
mov esp, ebp
pop ebp
ret