Function at 0x4422f0
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 0x442340
mov dword [esp + 0x20], 4
jmp 0x442362
cmp edi, 0x18
jne 0x44234f
mov dword [esp + 0x20], 3
jmp 0x442362
mov ecx, dword [esp + 0x30]
cmp edi, 0x10
mov eax, 2
cmove ecx, eax
mov dword [esp + 0x20], ecx
mov al, byte [edx]
mov esi, 0x12
test al, al
je 0x442373
movzx esi, al
add esi, 0x12
cmp byte [edx + 1], 0
je 0x442396
movzx ecx, byte [edx + 6]
movzx eax, byte [edx + 5]
shl ecx, 8
add ecx, eax
test ecx, ecx
jle 0x442396
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 0x4423bb
cmp ecx, 0x30
je 0x4423bb
mov esi, dword [esp + 0x40]
shr esi, 1
not esi
and esi, 1
jmp 0x4423c2
mov esi, dword [esp + 0x40]
and esi, 2
movzx ecx, byte [edx + 2]
mov dword [esp + 0x1c], esi
sub ecx, 2
je 0x4426ba
sub ecx, 8
jne case.0x4423ef.8
add edi, 0xfffffff8
cmp edi, 0x18
ja case.0x4423ef.8
movzx ecx, byte [edi + 0x4427f8]
jmp dword [ecx*4 + 0x4427ec]
imul ebp, dword [esp + 0x18]
xor edi, edi
mov edx, dword [esp + 0x38]
mov esi, edx
test ebp, ebp
je 0x44258d
nop dword [eax + eax]
mov bl, byte [eax]
inc eax
cmp bl, 0x80
jae 0x4424d0
add bl, 1
mov byte [esp + 0x34], bl
je 0x442581
nop dword [eax]
mov ecx, dword [esp + 0x20]
add ecx, eax
cmp ecx, dword [esp + 0x24]
ja case.0x4423ef.8
cmp bh, 0x20
jne 0x442467
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 0x4424b0
cmp bh, 0x18
jne 0x442479
mov cl, byte [eax]
mov dl, byte [eax + 1]
mov bl, byte [eax + 2]
add eax, 3
jmp 0x4424a5
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.0x4423ef.8
test bl, bl
jne 0x442430
jmp 0x442581
mov ecx, dword [esp + 0x20]
add ecx, eax
cmp ecx, dword [esp + 0x24]
ja case.0x4423ef.8
add bl, 0x81
lea ecx, [eax + 1]
cmp bh, 0x20
jne 0x442508
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 0x44254a
cmp bh, 0x18
jne 0x44251f
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 0x44254a
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 0x442581
nop
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 0x442573
mov bh, byte [esp + 0x13]
mov byte [esi], bh
inc esi
mov bh, byte [esp + 0x30]
inc edi
cmp edi, ebp
ja case.0x4423ef.8
add bl, 0xff
jne 0x442550
cmp edi, ebp
jb 0x442410
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
test al, 3
je 0x4425de
mov ebx, ebp
test ebp, ebp
je 0x4425de
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
nop dword [eax]
push ebp
push edi
push esi
call fcn.00430c10
mov eax, dword [esp + 0x48]
add esp, 0xc
sub edi, ebp
sub esi, eax
sub ebx, 1
jne 0x4425c0
mov ebp, dword [esp + 0x14]
jmp 0x4425e2
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x1c], 0
je 0x442650
push eax
call fcn.00573de4
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x442650
mov eax, ebp
cdq
sub eax, edx
sar eax, 1
cmp ebp, eax
jle 0x442647
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.00430c10
push dword [esp + 0x48]
push esi
push edi
call fcn.00430c10
push dword [esp + 0x54]
push ebx
push esi
call fcn.00430c10
mov ecx, dword [esp + 0x60]
add esp, 0x24
sub esi, ecx
add edi, ecx
sub ebp, 1
jne 0x442615
mov ebp, dword [esp + 0x14]
push ebx
call fcn.00573def
add esp, 4
mov eax, dword [esp + 0x28]
cmp eax, 0x30
je 0x442662
cmp eax, 0x10
jne case.0x4423ef.8
test ebp, ebp
je case.0x4423ef.8
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x38]
mov esi, ebx
test eax, eax
je 0x4426a9
mov edi, eax
nop word [eax + eax]
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 0x442680
mov eax, dword [esp + 0x18]
add ebx, dword [esp + 0x3c]
sub ebp, 1
jne 0x442672
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
cmp bh, 0x10
je 0x44277e
cmp bh, 0x18
je 0x4426d1
cmp bh, 0x20
jne case.0x4423ef.8
mov ecx, dword [esp + 0x14]
xor ebp, ebp
shr edi, 3
test ecx, ecx
je case.0x4423ef.8
lea edx, [ecx - 1]
mov dword [esp + 0x30], edx
nop dword [eax]
test esi, esi
mov ecx, ebp
cmovne ecx, edx
mov edx, dword [esp + 0x38]
imul ecx, dword [esp + 0x3c]
add edx, ecx
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x442762
mov esi, ecx
cmp bh, 0x20
jne 0x442740
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 0x442711
jmp 0x44275e
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 0x442740
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
inc ebp
dec edx
mov dword [esp + 0x30], edx
cmp ebp, dword [esp + 0x14]
jb 0x4426f0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
xor ebx, ebx
test ebp, ebp
je case.0x4423ef.8
mov ecx, dword [esp + 0x18]
dec ebp
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
test edi, edi
mov esi, ebx
cmovne esi, ebp
test ecx, ecx
je 0x4427dd
imul esi, dword [esp + 0x3c]
mov edi, ecx
add esi, dword [esp + 0x38]
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 0x4427a7
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x1c]
inc ebx
dec ebp
cmp ebx, edx
jb 0x442791
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret