Function at 0x44f7d0
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
push esi
mov esi, dword [esp + 0x48]
push edi
movsx eax, word [esi]
push eax
call fcn.0044ced0
mov di, word [esi + 6]
mov dword [esp + 0x28], eax
mov ax, word [esi + 0xa]
add esp, 4
cmp ax, di
jge 0x44f7f8
mov edi, eax
push esi
call fcn.0044d860
movsx ecx, di
mov dword [esp + 0x20], eax
xor eax, eax
add esp, 4
cmp ecx, eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x28], ecx
jle 0x44fbcb
push ebx
push ebp
mov ebp, 0x63a9d8
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
cmp dword [ebp], 0
je 0x44fba2
movsx ebx, word [esp + 0x24]
mov edi, dword [ebp + 0x48]
lea ecx, [esp + 0x44]
add ebx, eax
push ecx
push ebx
push esi
add edi, 0x18
mov dword [esp + 0x34], ebx
call fcn.0044fe10
add esp, 0xc
xor esi, esi
mov dword [esp + 0x10], ebp
mov eax, dword [ebp]
test eax, eax
je 0x44f8ca
test esi, esi
lea ebp, [eax + 0x18]
je 0x44f8b2
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x38]
movsx ecx, word [eax + ebx*2]
inc ecx
cmp esi, ecx
je 0x44f8b2
mov ecx, dword [esp + 0x4c]
mov eax, 0x55555556
imul ecx
mov ecx, dword [esp + 0x48]
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x55555556
push edx
imul ecx
mov ecx, edx
mov eax, 0x55555556
shr ecx, 0x1f
add edx, ecx
mov ecx, dword [esp + 0x48]
push edx
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
jmp 0x44f8c1
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
push ecx
push edx
push eax
push ebp
call fcn.0044fe60
add esp, 0x10
mov ebp, dword [esp + 0x10]
inc esi
add ebp, 4
cmp esi, 0x12
mov dword [esp + 0x10], ebp
jl 0x44f859
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x20]
mov eax, 0xff000000
and ecx, eax
and esi, eax
mov dword [edi + 0x18], ecx
mov ebp, dword [edi + 0x1c]
mov dword [edi + 0x20], esi
mov edx, dword [edi + 0x24]
or ecx, 0xffffffff
and ebp, ecx
and edx, ecx
mov dword [edi + 0x1c], ebp
mov ebp, dword [edi + 0x28]
mov dword [edi + 0x24], edx
mov edx, dword [edi + 0x30]
and ebp, eax
and edx, eax
mov dword [edi + 0x28], ebp
mov esi, dword [edi + 0x2c]
mov dword [edi + 0x30], edx
mov ebp, dword [edi + 0x34]
and esi, ecx
and ebp, ecx
mov ecx, dword [esp + 0x54]
mov dword [edi + 0x2c], esi
mov dword [edi + 0x34], ebp
movsx edx, word [ecx + 8]
sub ebx, edx
neg ebx
sbb ebx, ebx
and ebx, 0xffffffc0
add ebx, 0x80
lea eax, [ebx + ebx*2]
lea ecx, [eax + eax*4]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
cmp ebp, 0x80
mov dword [esp + 0x20], ebp
jle 0x44f96c
mov ebp, 0x80
mov dword [esp + 0x20], ebp
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x18]
lea eax, [edx + ecx]
mov edx, dword [eax*4 + 0x63a9d8]
test edx, edx
je 0x44fab9
mov esi, edx
add esi, 0x18
test ecx, ecx
jne 0x44fa1a
mov eax, ebx
mov ecx, 0x18
cdq
call fcn.00492630
mov ecx, dword [esi + 0x18]
mov dword [esp + 0x38], edx
mov edx, dword [esi + 0x1c]
and ecx, 0xffffff
mov dword [esp + 0x34], eax
or ecx, eax
mov eax, dword [esp + 0x38]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x24]
or edx, eax
mov eax, dword [esi + 0x20]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0x34]
and eax, 0xffffff
or eax, edx
mov edx, dword [esp + 0x38]
or ecx, edx
mov edx, dword [esi + 0x28]
mov dword [esi + 0x20], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x34]
and edx, 0xffffff
or edx, ecx
mov ecx, dword [esp + 0x38]
or eax, ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x34]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x34]
and ecx, 0xffffff
or ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x44faad
mov eax, ebp
mov ecx, 0x18
cdq
and edx, 3
add eax, edx
sar eax, 2
cdq
call fcn.00492630
mov ecx, dword [esi + 0x18]
mov ebp, dword [esi + 0x1c]
and ecx, 0xffffff
or edx, ebp
mov ebp, dword [esp + 0x20]
or eax, ecx
mov dword [esi + 0x18], eax
mov eax, ebp
mov dword [esi + 0x1c], edx
mov ecx, 0x18
cdq
call fcn.00492630
mov ecx, dword [esi + 0x24]
mov dword [esp + 0x40], edx
mov edx, dword [esi + 0x20]
mov dword [esp + 0x3c], eax
and edx, 0xffffff
or edx, eax
mov eax, dword [esp + 0x40]
or ecx, eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x20], edx
mov edx, dword [esi + 0x28]
mov dword [esi + 0x24], ecx
mov ecx, dword [esp + 0x3c]
and edx, 0xffffff
or edx, ecx
mov ecx, dword [esp + 0x40]
or eax, ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x34]
mov dword [esi + 0x2c], eax
mov eax, dword [esp + 0x3c]
and ecx, 0xffffff
or ecx, eax
mov eax, dword [esp + 0x40]
or edx, eax
mov dword [esi + 0x30], ecx
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x34], edx
inc ecx
cmp ecx, 0x12
mov dword [esp + 0x10], ecx
jl 0x44f972
mov eax, ebx
mov ecx, 0x18
cdq
sub eax, edx
sar eax, 1
cdq
call fcn.00492630
mov ecx, dword [edi + 0x18]
mov esi, dword [edi + 0x1c]
and ecx, 0xffffff
or esi, edx
or ecx, eax
mov ebp, dword [esp + 0x28]
mov dword [edi + 0x18], ecx
mov ecx, dword [edi + 0x20]
and ecx, 0xffffff
mov dword [edi + 0x1c], esi
mov esi, dword [edi + 0x24]
or ecx, eax
mov dword [edi + 0x20], ecx
mov ecx, dword [edi + 0x28]
or esi, edx
and ecx, 0xffffff
mov dword [edi + 0x24], esi
mov esi, dword [edi + 0x2c]
or ecx, eax
or esi, edx
mov dword [edi + 0x28], ecx
mov ecx, dword [edi + 0x30]
mov ebx, dword [esp + 0x54]
mov dword [edi + 0x2c], esi
mov esi, dword [edi + 0x34]
and ecx, 0xffffff
or ecx, eax
or esi, edx
mov edx, dword [esp + 0x1c]
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], esi
push ebp
mov esi, dword [edx]
push ebx
add esi, 0x18
call fcn.0044d260
mov ecx, dword [ebx + 0x24]
push ebp
push ebx
movsx edx, word [ecx + eax*2]
mov ecx, dword [esp + 0x3c]
add edx, dword [ecx]
mov dword [esi], edx
mov edx, dword [ebx + 0x28]
movsx eax, word [edx + eax*2]
mov edx, dword [ecx + 8]
imul edx, dword [esp + 0x24]
add eax, edx
mov edx, dword [ecx + 4]
add eax, edx
mov dword [esi + 4], eax
mov eax, dword [esi]
add eax, 8
mov dword [edi], eax
mov ecx, dword [esi + 4]
add ecx, 8
mov dword [edi + 4], ecx
call fcn.0044d260
mov edx, dword [ebx + 0x20]
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x2c]
add esp, 0x10
mov eax, dword [edx + eax*4]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x14]
mov esi, ebx
mov ebx, dword [esp + 0x18]
inc eax
add ebx, 0x13
add ebp, 0x4c
cmp eax, ecx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ebp
jl 0x44f829
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 0x40
ret
pop edi
xor eax, eax
pop esi
add esp, 0x40
ret