Function at 0x405d90
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x20]
push ebx
movzx ebx, word [eax + 4]
push ebp
movsx ebp, word [eax + 0xa]
push esi
movsx esi, word [eax + 8]
sub edx, esi
mov esi, dword [esp + 0x30]
sub esi, ebp
cmp edx, dword [ecx + 0x400]
push edi
movzx edi, word [eax + 6]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x34], esi
jge 0x40625b
mov ebp, dword [ecx + 0x3f8]
movzx ebx, bx
add ebx, edx
cmp ebx, ebp
jle 0x40625b
cmp esi, dword [ecx + 0x404]
jge 0x40625b
mov ebx, dword [ecx + 0x3fc]
movzx ebp, di
add ebp, esi
cmp ebp, ebx
jle 0x40625b
xor ebp, ebp
cmp edx, dword [ecx + 0x3f8]
mov dword [esp + 0x18], ebp
jge 0x405e2a
mov bx, word [ecx + 0x3f8]
sub bx, dx
movzx edx, bx
sub dword [esp + 0x10], edx
mov dword [esp + 0x18], edx
mov edx, dword [ecx + 0x3f8]
cmp esi, dword [ecx + 0x3fc]
jge 0x405e4b
mov bx, word [ecx + 0x3fc]
sub bx, si
mov esi, dword [ecx + 0x3fc]
movzx ebp, bx
sub edi, ebp
mov dword [esp + 0x34], esi
movzx esi, word [esp + 0x10]
add esi, edx
cmp esi, dword [ecx + 0x400]
jle 0x405e6b
mov si, word [ecx + 0x400]
sub si, dx
movzx esi, si
mov dword [esp + 0x10], esi
movzx esi, di
add esi, dword [esp + 0x34]
cmp esi, dword [ecx + 0x404]
jle 0x405e89
mov si, word [ecx + 0x404]
sub si, word [esp + 0x34]
movzx edi, si
mov esi, dword [ecx + 0x3d4]
imul esi, dword [esp + 0x34]
mov ecx, dword [ecx + 0x3d0]
add esi, edx
lea ebx, [ecx + esi*2]
movzx esi, word [esp + 0x18]
movzx edx, bp
mov ecx, dword [eax + edx*4 + 0xc]
add edi, ebp
inc ebp
neg esi
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x34], ebp
mov edx, ebx
mov dword [esp + 0x18], esi
cmp bp, di
ja 0x40625b
mov edi, edi
movzx edi, word [eax]
mov ecx, edi
and ecx, 0xe000
cmp ecx, 0x8000
jg 0x406201
je 0x406226
test ecx, ecx
je 0x4061d9
cmp ecx, 0x2000
je 0x4061a7
cmp ecx, 0x4000
jne 0x406250
and edi, 0x1fff
movzx ecx, di
add esi, ecx
add eax, 2
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], ecx
test esi, esi
jle 0x40619f
movzx edi, word [esp + 0x10]
cmp esi, edi
jl 0x406055
cmp esi, ecx
jge 0x405fc9
sub ecx, esi
lea eax, [eax + ecx*4]
mov dword [esp + 0x30], eax
test edi, edi
jle 0x406226
mov dword [esp + 0x1c], edi
movzx edi, word [eax + 2]
movzx esi, word [edx]
mov eax, esi
shr eax, 6
and eax, 0x1f
mov ecx, edi
shr ecx, 6
and ecx, 0x1f
shl eax, 5
add eax, ecx
mov ecx, esi
shr ecx, 0xb
mov ebp, edi
shr ebp, 0xb
shl ecx, 5
add ecx, ebp
mov bp, word [eax*2 + 0x450ec8]
add bp, word [ecx*2 + 0x4506c8]
mov eax, dword [esp + 0x30]
and esi, 0x1f
shl esi, 5
and edi, 0x1f
add esi, edi
add bp, word [esi*2 + 0x4516c8]
add eax, 4
add bp, word [eax - 4]
add edx, 2
sub dword [esp + 0x1c], 1
mov word [edx - 2], bp
mov dword [esp + 0x30], eax
jne 0x405f55
mov ebp, dword [esp + 0x34]
jmp 0x406226
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x20]
sub edi, esi
add ecx, edi
movzx ecx, cx
test ecx, ecx
jle 0x406226
mov dword [esp + 0x30], ecx
movzx esi, word [edx]
movzx ecx, word [eax + 2]
mov edi, esi
shr edi, 6
and edi, 0x1f
mov ebp, ecx
shr ebp, 6
shl edi, 5
and ebp, 0x1f
add edi, ebp
mov di, word [edi*2 + 0x450ec8]
mov ebp, esi
shr ebp, 0xb
mov dword [esp + 0x20], ecx
shr ecx, 0xb
shl ebp, 5
add ebp, ecx
add di, word [ebp*2 + 0x4506c8]
mov ecx, dword [esp + 0x20]
and esi, 0x1f
shl esi, 5
and ecx, 0x1f
add esi, ecx
add di, word [esi*2 + 0x4516c8]
add edx, 2
add di, word [eax]
add eax, 4
sub dword [esp + 0x30], 1
mov word [edx - 2], di
jne 0x405fe4
mov ebp, dword [esp + 0x34]
jmp 0x406226
cmp esi, ecx
jge 0x406106
lea ecx, [ecx + ecx*2]
add ecx, ecx
lea edi, [esi*4]
sub ecx, edi
add eax, ecx
mov ecx, esi
neg ecx
lea edx, [edx + ecx*2]
mov dword [esp + 0x1c], edx
test esi, esi
jle 0x4060fa
mov dword [esp + 0x20], esi
movzx edi, word [edx]
movzx ebx, word [eax - 2]
mov edx, edi
shr edx, 6
and edx, 0x1f
mov ecx, ebx
shr ecx, 6
and ecx, 0x1f
shl edx, 5
add edx, ecx
mov ecx, edi
shr ecx, 0xb
mov ebp, ebx
shr ebp, 0xb
shl ecx, 5
add ecx, ebp
mov bp, word [edx*2 + 0x450ec8]
add bp, word [ecx*2 + 0x4506c8]
mov edx, dword [esp + 0x1c]
and edi, 0x1f
shl edi, 5
and ebx, 0x1f
add edi, ebx
add bp, word [edi*2 + 0x4516c8]
add edx, 2
add bp, word [eax]
sub eax, 4
sub bp, 2
sub dword [esp + 0x20], 1
mov word [edx - 2], bp
mov dword [esp + 0x1c], edx
jne 0x406084
mov ebp, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x24]
lea edx, [edx + ecx*2]
jmp 0x406250
lea edi, [ecx + ecx]
add eax, edi
sub edx, edi
mov dword [esp + 0x1c], edi
test ecx, ecx
jle 0x406198
mov dword [esp + 0x20], ecx
lea ecx, [ecx]
movzx edi, word [edx]
movzx ecx, word [eax - 2]
mov ebx, edi
shr ebx, 6
and ebx, 0x1f
mov ebp, ecx
shr ebp, 6
shl ebx, 5
and ebp, 0x1f
add ebx, ebp
mov bx, word [ebx*2 + 0x450ec8]
mov ebp, edi
shr ebp, 0xb
mov dword [esp + 0x24], ecx
shr ecx, 0xb
shl ebp, 5
add ebp, ecx
add bx, word [ebp*2 + 0x4506c8]
mov ecx, dword [esp + 0x24]
and edi, 0x1f
shl edi, 5
and ecx, 0x1f
add edi, ecx
add bx, word [edi*2 + 0x4516c8]
add edx, 2
add bx, word [eax]
sub eax, 4
sub bx, 2
sub dword [esp + 0x20], 1
mov word [edx - 2], bx
jne 0x406120
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov edi, dword [esp + 0x1c]
add edx, edi
jmp 0x406250
lea eax, [eax + ecx*4]
jmp 0x406250
and edi, 0x1fff
movzx ecx, di
add esi, ecx
add eax, 2
test esi, esi
jle 0x4061d4
movzx edi, word [esp + 0x10]
cmp esi, edi
jge 0x406226
cmp esi, ecx
jge 0x4061d1
lea edx, [edx + esi*2]
lea eax, [eax + ecx*2]
jmp 0x406250
lea edx, [edx + ecx*2]
lea eax, [eax + ecx*2]
jmp 0x406250
and edi, 0x1fff
movzx ecx, di
add esi, ecx
add eax, 2
test esi, esi
jle 0x406250
movzx edi, word [esp + 0x10]
cmp esi, edi
jge 0x406226
cmp esi, ecx
jge 0x4060fe
lea edx, [edx + esi*2]
jmp 0x406250
cmp ecx, 0xa000
je 0x406226
cmp ecx, 0xc000
je 0x40621b
cmp ecx, 0xe000
je 0x40625b
jmp 0x406250
and edi, 0x1fff
movzx eax, di
add esi, eax
mov eax, dword [esp + 0x38]
mov esi, dword [esp + 0x18]
movzx edx, bp
mov ecx, dword [eax + edx*4 + 0xc]
mov edx, dword [esp + 0x14]
lea eax, [eax + ecx*2]
mov ecx, dword [edx + 0x3d4]
lea ebx, [ebx + ecx*2]
inc ebp
mov edx, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebp
cmp bp, word [esp + 0x28]
jbe 0x405ed0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 0x10