Function at 0x403240
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
add eax, edx
push ebx
movzx ecx, byte [edx + 0xd]
mov bh, byte [edx + 0x10]
push ebp
movzx ebp, byte [edx + 0xf]
mov dword [esp + 0x1c], eax
movzx eax, byte [edx + 0xc]
shl ecx, 8
add eax, ecx
shl ebp, 8
push esi
mov dword [esp + 0x14], eax
movzx eax, byte [edx + 0xe]
push edi
add ebp, eax
movzx edi, bh
mov dword [esp + 0x14], ebp
mov byte [esp + 0x30], bh
cmp edi, 0x20
jne 0x403290
mov dword [esp + 0x1c], 4
jmp 0x4032b6
cmp edi, 0x18
jne 0x40329f
mov dword [esp + 0x1c], 3
jmp 0x4032b6
cmp edi, 0x10
jne 0x4032ae
mov dword [esp + 0x1c], 2
jmp 0x4032b6
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], eax
mov al, byte [edx]
mov esi, 0x12
test al, al
je 0x4032c7
movzx esi, al
add esi, 0x12
cmp byte [edx + 1], 0
je 0x4032ea
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 5]
shl ecx, 8
add ecx, eax
test ecx, ecx
jle 0x4032ea
movzx eax, byte [edx + 7]
shr eax, 3
imul eax, ecx
add esi, eax
movzx ecx, byte [edx + 0x11]
lea eax, [esi + edx]
and ecx, 0x30
mov dword [esp + 0x28], ecx
cmp ecx, 0x20
je 0x40330f
cmp ecx, 0x30
je 0x40330f
mov esi, dword [esp + 0x40]
shr esi, 1
not esi
and esi, 1
jmp 0x403316
mov esi, dword [esp + 0x40]
and esi, 2
movzx ecx, byte [edx + 2]
mov dword [esp + 0x20], esi
sub ecx, 2
je 0x40360a
sub ecx, 8
jne case.0x403343.8
add edi, 0xfffffff8
cmp edi, 0x18
ja case.0x403343.8
movzx ecx, byte [edi + 0x40372c]
jmp dword [ecx*4 + 0x403720]
imul ebp, dword [esp + 0x18]
xor edi, edi
mov edx, dword [esp + 0x38]
mov esi, edx
test ebp, ebp
je 0x4034dd
nop
mov bl, byte [eax]
inc eax
cmp bl, 0x80
jae 0x403420
add bl, 1
mov byte [esp + 0x34], bl
je 0x4034d1
lea esp, [esp]
mov ecx, dword [esp + 0x1c]
add ecx, eax
cmp ecx, dword [esp + 0x24]
ja case.0x403343.8
cmp bh, 0x20
jne 0x4033b7
mov cl, byte [eax]
mov dh, byte [eax + 3]
mov dl, byte [eax + 1]
mov bl, byte [eax + 2]
add eax, 4
mov byte [esi], cl
mov byte [esi + 1], dl
mov byte [esi + 2], bl
mov byte [esi + 3], dh
add esi, 4
mov byte [esp + 0x13], dh
jmp 0x403400
cmp bh, 0x18
jne 0x4033c9
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov bl, byte [eax + 2]
add eax, 3
jmp 0x4033f5
movzx edx, byte [eax + 1]
movzx ecx, byte [eax]
add eax, 2
shl dx, 8
or dx, cx
movzx ebx, dx
mov edx, ebx
mov cl, bl
shr edx, 5
shr bx, 0xa
mov bh, byte [esp + 0x30]
shl cl, 3
shl dl, 3
shl bl, 3
mov byte [esi], cl
mov byte [esi + 1], dl
mov byte [esi + 2], bl
add esi, 3
mov bl, byte [esp + 0x34]
inc edi
dec bl
mov byte [esp + 0x34], bl
cmp edi, ebp
ja case.0x403343.8
test bl, bl
jne 0x403380
jmp 0x4034d1
mov ecx, dword [esp + 0x1c]
add ecx, eax
cmp ecx, dword [esp + 0x24]
ja case.0x403343.8
add bl, 0x81
lea ecx, [eax + 1]
cmp bh, 0x20
jne 0x403458
mov al, byte [eax]
mov byte [esp + 0x34], al
mov eax, ecx
mov bh, byte [eax + 2]
mov dl, byte [eax]
mov cl, byte [eax + 1]
add eax, 3
mov byte [esp + 0x13], bh
mov bh, byte [esp + 0x30]
jmp 0x40349a
cmp bh, 0x18
jne 0x40346f
mov al, byte [eax]
mov byte [esp + 0x34], al
mov eax, ecx
mov dl, byte [eax]
mov cl, byte [eax + 1]
add eax, 2
jmp 0x40349a
movzx edx, byte [ecx]
movzx ecx, byte [eax]
add eax, 2
shl dx, 8
or dx, cx
movzx ecx, dx
mov dl, cl
shl dl, 3
mov byte [esp + 0x34], dl
mov edx, ecx
shr edx, 5
shr cx, 0xa
shl dl, 3
shl cl, 3
test bl, bl
je 0x4034d1
mov edi, edi
mov bh, byte [esp + 0x34]
mov byte [esi], bh
mov bh, byte [esp + 0x30]
mov byte [esi + 1], dl
mov byte [esi + 2], cl
add esi, 3
cmp bh, 0x20
jne 0x4034c3
mov bh, byte [esp + 0x13]
mov byte [esi], bh
inc esi
mov bh, byte [esp + 0x30]
inc edi
cmp edi, ebp
ja case.0x403343.8
add bl, 0xff
jne 0x4034a0
cmp edi, ebp
jb 0x403360
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
test al, 3
je 0x40352e
mov ebx, ebp
test ebp, ebp
je 0x40352e
mov ecx, ebx
lea ebp, [eax + eax*2]
lea edi, [ecx - 1]
lea esi, [ecx - 1]
imul esi, dword [esp + 0x3c]
lea edi, [edi + edi*2]
imul edi, eax
add esi, edx
add edi, edx
lea esp, [esp]
push ebp
push edi
push esi
call fcn.00414030
mov eax, dword [esp + 0x48]
add esp, 0xc
sub edi, ebp
sub esi, eax
sub ebx, 1
jne 0x403510
mov ebp, dword [esp + 0x14]
jmp 0x403532
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x20], 0
je 0x4035a0
push eax
call fcn.00422f10
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4035a0
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
cmp ebp, eax
jle 0x403597
mov ecx, dword [esp + 0x3c]
lea esi, [ebp - 1]
mov edi, dword [esp + 0x38]
imul esi, ecx
add esi, edi
sub ebp, eax
push ecx
push edi
push ebx
call fcn.00414030
push dword [esp + 0x48]
push esi
push edi
call fcn.00414030
push dword [esp + 0x54]
push ebx
push esi
call fcn.00414030
mov ecx, dword [esp + 0x60]
add esp, 0x24
sub esi, ecx
add edi, ecx
sub ebp, 1
jne 0x403565
mov ebp, dword [esp + 0x14]
push ebx
call fcn.00422ef5
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 0x30
je 0x4035b2
cmp eax, 0x10
jne case.0x403343.8
test ebp, ebp
je case.0x403343.8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
mov esi, ebx
test eax, eax
je 0x4035f9
mov edi, eax
lea ebx, [ebx]
mov edx, dword [esi]
lea esi, [esi + 3]
mov eax, edx
sar eax, 0x10
movzx ecx, al
movzx eax, dl
and edx, 0xff00ff00
shl eax, 0x10
or ecx, eax
or ecx, edx
mov dword [esi - 3], ecx
sub edi, 1
jne 0x4035d0
mov eax, dword [esp + 0x18]
add ebx, dword [esp + 0x3c]
sub ebp, 1
jne 0x4035c2
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp bh, 0x10
je 0x4036ba
cmp bh, 0x18
je 0x403621
cmp bh, 0x20
jne case.0x403343.8
mov ecx, dword [esp + 0x14]
xor ebp, ebp
shr edi, 3
test ecx, ecx
je case.0x403343.8
dec ecx
mov dword [esp + 0x30], ecx
test esi, esi
jne 0x40363d
mov ecx, ebp
imul ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
add edx, ecx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4036a2
mov esi, ecx
cmp bh, 0x20
jne 0x403680
movzx ecx, byte [eax]
lea edx, [edx + 4]
mov byte [edx - 4], cl
movzx ecx, byte [eax + 1]
mov byte [edx - 3], cl
movzx ecx, byte [eax + 2]
mov byte [edx - 2], cl
movzx ecx, byte [eax + 3]
add eax, edi
mov byte [edx - 1], cl
sub esi, 1
jne 0x403657
jmp 0x40369e
movzx ecx, byte [eax]
lea edx, [edx + 3]
mov byte [edx - 3], cl
movzx ecx, byte [eax + 1]
mov byte [edx - 2], cl
movzx ecx, byte [eax + 2]
add eax, edi
mov byte [edx - 1], cl
sub esi, 1
jne 0x403680
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x30]
inc ebp
dec ecx
mov dword [esp + 0x30], ecx
cmp ebp, dword [esp + 0x14]
jb 0x403637
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
xor ebx, ebx
test ebp, ebp
je case.0x403343.8
dec ebp
test esi, esi
mov esi, ebx
je 0x4036c9
mov esi, ebp
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x40370a
imul esi, dword [esp + 0x3c]
mov edi, ecx
add esi, dword [esp + 0x38]
lea esp, [esp]
movzx edx, word [eax]
lea esi, [esi + 3]
mov cl, dl
add eax, 2
shl cl, 3
mov byte [esi - 3], cl
mov ecx, edx
shr ecx, 2
shr edx, 7
and cl, 0xf8
and dl, 0xf8
mov byte [esi - 2], cl
mov byte [esi - 1], dl
sub edi, 1
jne 0x4036e0
mov esi, dword [esp + 0x20]
inc ebx
dec ebp
cmp ebx, dword [esp + 0x14]
jb 0x4036c1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret