Function at 0x451e10
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x40
push esi
push edi
mov edi, dword [esp + 0x4c]
movsx eax, word [edi]
push eax
call fcn.0044ced0
mov si, word [edi + 6]
mov dword [esp + 0x28], eax
mov ax, word [edi + 0xa]
add esp, 4
cmp ax, si
jge 0x451e38
mov esi, eax
push edi
call fcn.0044d860
movsx ecx, si
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 0x452215
push ebx
push ebp
mov ebp, 0x63b748
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], ebp
cmp dword [ebp], 0
je 0x4521ec
movsx ebx, word [esp + 0x24]
mov esi, dword [ebp + 0x48]
lea ecx, [esp + 0x44]
add ebx, eax
push ecx
push ebx
push edi
add esi, 0x18
mov dword [esp + 0x34], ebx
call fcn.00452450
add esp, 0xc
xor edi, edi
mov dword [esp + 0x10], ebp
mov eax, dword [ebp]
test eax, eax
je 0x451f0a
test edi, edi
lea ebp, [eax + 0x18]
je 0x451ef2
mov edx, dword [esp + 0x54]
mov eax, dword [edx + 0x38]
movsx ecx, word [eax + ebx*2]
inc ecx
cmp edi, ecx
je 0x451ef2
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 0x451f01
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.004548d0
add esp, 0x10
mov ebp, dword [esp + 0x10]
inc edi
add ebp, 4
cmp edi, 0x12
mov dword [esp + 0x10], ebp
jl 0x451e99
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x20]
mov eax, 0xff000000
and ecx, eax
and edi, eax
mov dword [esi + 0x18], ecx
mov ebp, dword [esi + 0x1c]
mov dword [esi + 0x20], edi
mov edx, dword [esi + 0x24]
or ecx, 0xffffffff
and ebp, ecx
and edx, ecx
mov dword [esi + 0x1c], ebp
mov ebp, dword [esi + 0x28]
mov dword [esi + 0x24], edx
mov edx, dword [esi + 0x30]
and ebp, eax
and edx, eax
mov dword [esi + 0x28], ebp
mov edi, dword [esi + 0x2c]
mov dword [esi + 0x30], edx
mov ebp, dword [esi + 0x34]
and edi, ecx
and ebp, ecx
mov ecx, dword [esp + 0x54]
mov dword [esi + 0x2c], edi
mov dword [esi + 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 0x451fac
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 + 0x63b748]
test edx, edx
je 0x452100
mov edi, edx
add edi, 0x18
test ecx, ecx
jne 0x452062
mov eax, ebx
mov ecx, 0x18
cdq
call fcn.00492630
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x38], edx
mov edx, dword [edi + 0x1c]
and ecx, 0xffffff
mov dword [esp + 0x34], eax
or ecx, eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0x18], ecx
mov ecx, dword [edi + 0x24]
or edx, eax
mov eax, dword [edi + 0x20]
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x34]
and eax, 0xffffff
or eax, edx
mov edx, dword [esp + 0x38]
or ecx, edx
mov edx, dword [edi + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x24], ecx
mov ecx, dword [esp + 0x34]
and edx, 0xffffff
or edx, ecx
mov ecx, dword [esp + 0x38]
or eax, ecx
mov ecx, dword [edi + 0x30]
mov dword [edi + 0x28], edx
mov edx, dword [edi + 0x34]
mov dword [edi + 0x2c], eax
mov eax, dword [esp + 0x34]
and ecx, 0xffffff
or ecx, eax
mov eax, dword [esp + 0x38]
or edx, eax
mov dword [edi + 0x30], ecx
mov dword [edi + 0x34], edx
jmp 0x4520fc
mov eax, ebp
mov ecx, 0x18
cdq
call fcn.00492630
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x40], edx
mov edx, dword [edi + 0x1c]
and ecx, 0xffffff
mov dword [esp + 0x3c], eax
or ecx, eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x18], ecx
mov ecx, dword [edi + 0x24]
or edx, eax
mov eax, dword [edi + 0x20]
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 0x3c]
and eax, 0xffffff
or eax, edx
mov edx, dword [esp + 0x40]
or ecx, edx
mov edx, dword [edi + 0x28]
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x24], ecx
mov ecx, dword [esp + 0x3c]
and edx, 0xffffff
or edx, ecx
mov ecx, dword [esp + 0x40]
or eax, ecx
mov dword [edi + 0x28], edx
mov dword [edi + 0x2c], eax
mov eax, ebp
cdq
and edx, 3
mov ecx, 0x18
add eax, edx
sar eax, 2
cdq
call fcn.00492630
mov ecx, dword [edi + 0x30]
mov ebp, dword [edi + 0x34]
and ecx, 0xffffff
or eax, ecx
or edx, ebp
mov ebp, dword [esp + 0x20]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], edx
mov ecx, dword [esp + 0x10]
inc ecx
cmp ecx, 0x12
mov dword [esp + 0x10], ecx
jl 0x451fb2
mov eax, ebx
mov ecx, 0x18
cdq
sub eax, edx
sar eax, 1
cdq
call fcn.00492630
mov ecx, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
and ecx, 0xffffff
or edi, edx
or ecx, eax
mov ebx, dword [esp + 0x54]
mov dword [esi + 0x18], ecx
mov ecx, dword [esi + 0x20]
and ecx, 0xffffff
mov dword [esi + 0x1c], edi
mov edi, dword [esi + 0x24]
or ecx, eax
mov dword [esi + 0x20], ecx
mov ecx, dword [esi + 0x28]
or edi, edx
and ecx, 0xffffff
mov dword [esi + 0x24], edi
mov edi, dword [esi + 0x2c]
or ecx, eax
or edi, edx
mov dword [esi + 0x28], ecx
mov ecx, dword [esi + 0x30]
mov dword [esi + 0x2c], edi
mov edi, dword [esi + 0x34]
and ecx, 0xffffff
or edi, edx
mov edx, dword [esp + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0x30], ecx
mov dword [esi + 0x34], edi
mov edi, dword [edx]
push eax
push ebx
add edi, 0x18
call fcn.0044d260
mov ecx, 0x1000
add esp, 8
mov dword [esi + 0x48], ecx
mov dword [esi + 0x44], ecx
mov dword [edi + 0x48], ecx
mov dword [edi + 0x44], ecx
mov ecx, dword [ebx + 0x24]
movsx edx, word [ecx + eax*2]
mov ecx, dword [esp + 0x2c]
mov ebp, dword [ecx]
add edx, ebp
mov ebp, dword [esp + 0x1c]
mov dword [edi], edx
mov edx, dword [ebx + 0x28]
movsx eax, word [edx + eax*2]
mov edx, dword [ecx + 8]
imul edx, dword [esp + 0x14]
add eax, edx
mov edx, dword [ecx + 4]
add eax, edx
mov dword [edi + 4], eax
mov eax, dword [edi]
add eax, 8
mov dword [esi], eax
mov ecx, dword [edi + 4]
mov eax, dword [esp + 0x14]
add ecx, 8
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
mov edi, 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 0x451e69
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