Function at 0x6c5425
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
lea ebp, [esp - 0x5c]
sub esp, 0x554
mov eax, dword [0x302b4e44]
mov dword [ebp + 0x58], eax
mov eax, dword [ebp + 0x6c]
mov cl, byte [eax + 5]
mov byte [ebp + 0x1f], cl
push ebx
lea ecx, [eax + 0x430]
mov dword [ebp - 0x28], ecx
mov ecx, dword [ebp + 0x68]
movzx edx, byte [ecx + 7]
push esi
mov esi, dword [ecx + 0x1c]
movzx ecx, byte [ecx + 0x18]
mov ebx, dword [esi + 0x1c]
and dword [ebp - 0x24], 0
fld dword [ecx*4 + 0x3026cdb0]
and dword [ebp - 0x1c], 0
push edi
fstp dword [ebp - 0x34]
movzx edi, byte [esi + 4]
lea ecx, [ebp + 0x28]
push ecx
movsx ecx, byte [eax + 0x11]
push ecx
mov ecx, dword [ebp + 0x64]
mov dword [ebp - 0x30], edx
movzx edx, byte [esi + 5]
add ecx, 0x14
mov dword [ebp - 0x2c], edx
push ecx
add eax, 0x3c
sub edx, edi
push eax
movzx eax, byte [esi + 1]
mov dword [ebp + 0x10], edx
movzx edx, byte [esi + 2]
push eax
mov dword [ebp - 8], edi
mov dword [ebp - 0x38], edx
call fcn.006c4987
movzx eax, byte [ebp + 0x1f]
and dword [ebp], 0
add esp, 0x14
test eax, eax
jle 0x6c5aac
mov ecx, dword [ebp + 0x6c]
mov edi, dword [ebp]
mov dl, byte [edi + ecx + 6]
mov bl, byte [ecx + edi + 0xc]
mov al, dl
imul byte [ebp - 0x30]
mov byte [ebp + 0x26], al
mov al, byte [ecx + edi + 7]
imul byte [ebp - 0x30]
mov byte [ebp + 0x27], bl
mov ebx, dword [ebp - 0x1c]
cmp dl, byte [ecx + ebx + 0x14]
jne 0x6c54f6
mov edx, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x38]
inc dword [ebp - 0x1c]
lea edx, [edx + ebx*4]
mov dword [ebp - 0x28], edx
movsx ecx, byte [ecx + 0x11]
cmp edi, ecx
je 0x6c5520
mov ecx, dword [ebp + 0x64]
cmp edi, dword [ecx + 0x10]
je 0x6c5520
mov ecx, dword [ebp + 0x68]
movzx ecx, byte [ecx + 0x1a]
and dword [ebp - 4], 0
shl ecx, 2
mov edx, ecx
push 4
pop ecx
sub ecx, edx
mov dword [ebp - 0xc], ecx
jmp 0x6c552b
and dword [ebp - 0xc], 0
mov dword [ebp - 4], 1
mov ecx, dword [ebp + 0x68]
cmp byte [ecx + 0x19], 0
je 0x6c5702
lea ecx, [ebp - 0x338]
movzx edx, al
mov eax, dword [ebp - 8]
mov dword [ebp + 0xc], ecx
movzx ecx, byte [ebp + 0x26]
mov dword [ebp - 0x18], edx
sub edx, ecx
mov dword [ebp + 8], ecx
mov dword [ebp + 0x20], eax
fld dword [edx*4 + 0x3026cde0]
jmp 0x6c55c3
cmp ecx, dword [ebp - 0x18]
fldz
jge 0x6c55a8
mov ebx, dword [ebp + 0x74]
mov edi, dword [ebp + 0x70]
sub edi, ebx
lea eax, [ebx + ecx*4]
mov dword [ebp + 0x14], edi
mov dword [ebp + 0x18], edx
jmp 0x6c557c
mov edi, dword [ebp + 0x14]
cmp dword [ebp + 0x7c], 0
mov edi, dword [edi + eax]
mov ebx, dword [ebp + 0x20]
fld dword [edi + ebx*4]
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
jne 0x6c55a0
mov edi, dword [eax]
fld dword [edi + ebx*4]
fld st(0)
fmul st(1)
faddp st(2)
fstp st(0)
add eax, 4
dec dword [ebp + 0x18]
jne 0x6c5579
cmp dword [ebp + 0x7c], 0
je 0x6c55b2
fld st(0)
faddp st(1)
mov eax, dword [ebp + 0xc]
fmul st(1)
add dword [ebp + 0xc], 4
inc dword [ebp + 0x20]
fstp dword [eax]
mov eax, dword [ebp + 0x20]
cmp eax, dword [ebp - 0x2c]
jl 0x6c555f
fstp st(0)
movzx eax, byte [ebp + 0x27]
mov dl, byte [esi + 0x6b]
mov ecx, dword [esi + eax*4 + 0x18]
movzx eax, byte [eax + esi]
mov byte [ebp + 0x1e], dl
xor edx, edx
and dword [ebp + 0xc], edx
test eax, eax
mov byte [ebp + 0x27], 0
jle 0x6c577c
mov ebx, dword [ebp - 0x24]
add dword [ebp - 0x24], eax
lea edi, [ecx + 1]
mov ecx, dword [ebp + 0x6c]
lea ecx, [ecx + ebx*4 + 0x70]
mov dword [ebp - 0x14], edi
mov dword [ebp + 0x18], ecx
mov dword [ebp + 0x14], eax
movzx eax, byte [edi - 1]
movzx ecx, byte [edi]
cmp eax, ecx
mov byte [ebp + 0x26], 0
jge 0x6c562e
sub ecx, eax
mov ebx, dword [ebp + 0xc]
movsx ebx, byte [ebp + ebx + 0x28]
cmp dword [ebp], ebx
jl 0x6c5628
mov byte [ebp + 0x26], 1
inc dword [ebp + 0xc]
dec ecx
jne 0x6c5617
movzx ecx, byte [edi]
cmp eax, ecx
mov dword [ebp + 0x20], eax
jge 0x6c576b
mov edi, dword [ebp + 0x18]
fld dword [edi]
mov ebx, eax
sub ebx, dword [ebp - 8]
fst dword [ebp - 0x10]
sub ecx, eax
mov eax, dword [ebp - 0x10]
lea edi, [ebp + edx*4 - 0x3f8]
lea ebx, [ebp + ebx*4 - 0x4f8]
mov dword [ebp - 0x20], ebx
rep stosd dword es:[edi], eax
movzx eax, byte [ebp + 0x1e]
cmp dword [ebp + 0x20], eax
jl 0x6c5678
inc byte [ebp + 0x27]
movzx eax, byte [ebp + 0x27]
mov al, byte [eax + esi + 0x6b]
mov byte [ebp + 0x1e], al
cmp dword [ebp + 0x7c], 0
je 0x6c568b
mov ecx, dword [ebp - 0x20]
xor eax, eax
cmp byte [ebp + 0x26], al
sete al
mov dword [ecx], eax
movzx edi, byte [ebp + 0x27]
fldz
mov ebx, dword [ebp - 0x28]
mov eax, edx
shl eax, 2
cmp byte [ebp + 0x26], 0
lea ecx, [ebp + eax - 0x278]
fstp dword [ecx]
fld dword [ebx + edi*4]
fstp dword [ebp + 4]
fld dword [ebp + eax - 0x338]
fadd dword [0x30244380]
fld st(1)
fmul dword [ebp + 4]
fld dword [ebp + 4]
fadd dword [0x30244380]
fstp dword [ebp + 4]
fld1
fdiv dword [ebp + 4]
fst dword [ebp - 0x10]
fmul st(1)
fstp dword [ebp + eax - 0x1b8]
je 0x6c573a
fld dword [ebp + 4]
fmul st(2)
fdivr st(1)
fstp dword [ebp + eax - 0xf8]
movsx eax, byte [ebp + edx + 0x28]
cmp dword [ebp], eax
fstp st(0)
fstp st(0)
jl 0x6c5752
fld dword [ebp - 0x10]
fmul st(1)
fstp dword [ecx]
jmp 0x6c5752
push dword [ebp + 0x7c]
movzx edx, byte [ebp + 0x26]
movzx ecx, byte [ebp + 0x27]
movzx eax, al
lea edi, [ebp - 0x338]
push edi
push eax
push edx
push dword [ebp + 0x74]
mov dword [ebp - 0x18], eax
movzx eax, byte [ecx + esi]
push dword [ebp + 0x70]
mov ecx, dword [esi + ecx*4 + 0x18]
mov dword [ebp + 8], edx
call fcn.006c4bc0
add esp, 0x18
jmp 0x6c55ca
cmp dword [ebp - 4], 0
fstp st(0)
jne 0x6c5745
fmul dword [ebp + 4]
fld st(1)
fdiv st(1)
fstp dword [ebp + eax - 0xf8]
fstp st(0)
mov edi, dword [ebp - 0x14]
movzx eax, byte [edi]
add dword [ebp - 0x20], 4
inc edx
inc dword [ebp + 0x20]
cmp dword [ebp + 0x20], eax
jl 0x6c5661
fstp st(0)
add dword [ebp + 0x18], 4
inc edi
dec dword [ebp + 0x14]
mov dword [ebp - 0x14], edi
jne 0x6c5606
movzx eax, byte [esi + 0x13]
test eax, eax
jle 0x6c58d5
lea ecx, [esi + 7]
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 0x20]
fld1
movzx edx, byte [ecx]
fld1
movzx eax, byte [ecx - 1]
jmp 0x6c57b6
fadd dword [ebp + eax*4 - 0x3f8]
inc eax
fstp st(2)
fld st(0)
fadd dword [ebp + eax*4 - 0x33c]
fstp st(1)
cmp eax, edx
fld st(1)
jl 0x6c57a1
fdiv st(1)
fmul dword [ebp - 0x34]
fstp st(1)
fcom dword [0x3026e158]
fnstsw ax
test ah, 0x41
jne 0x6c57d8
fstp st(0)
fld dword [0x3026e158]
movzx edi, byte [ecx - 1]
cmp edi, edx
jge 0x6c5804
lea ecx, [ebp + edi*4 - 0xf8]
fcom dword [ecx]
fnstsw ax
test ah, 5
jp 0x6c5801
fld st(0)
lea eax, [ebp + edi*4 - 0x1b8]
fdiv dword [ecx]
fmul dword [eax]
fstp dword [eax]
fst dword [ecx]
inc edi
jmp 0x6c57dc
mov eax, dword [ebp + 0x20]
fstp st(0)
movzx ebx, byte [eax - 1]
fldz
cmp ebx, edx
jge 0x6c586d
mov ecx, ebx
shl ecx, 2
fld dword [ebp + ecx - 0xf8]
lea edi, [ebp + ecx - 0x278]
fmul dword [ebp + ecx - 0x338]
faddp st(1)
fld dword [0x3023fc90]
fld dword [edi]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x6c5846
fld st(0)
fadd dword [edi]
jmp 0x6c5855
cmp dword [ebp - 4], 0
jne 0x6c5857
fld st(0)
fadd dword [ebp + ecx - 0x1b8]
fstp st(1)
inc ebx
cmp ebx, edx
jl 0x6c5813
fld dword [0x3023fc90]
fld st(1)
fucompp
fnstsw ax
test ah, 0x44
jp 0x6c5875
fstp st(0)
fld dword [0x3026e148]
fld st(1)
fdiv st(1)
fstp st(2)
fstp st(0)
fcom dword [0x3026e154]
fnstsw ax
test ah, 0x41
jne 0x6c5892
fstp st(0)
fld dword [0x3026e154]
mov eax, dword [ebp + 0x20]
movzx ecx, byte [eax - 1]
cmp ecx, edx
jge 0x6c58c7
fld st(0)
lea eax, [ebp + ecx*4 - 0xf8]
fmul dword [eax]
fstp dword [eax]
lea eax, [ebp + ecx*4 - 0x278]
fld st(0)
fmul dword [eax]
fstp dword [eax]
lea eax, [ebp + ecx*4 - 0x1b8]
inc ecx
fld st(0)
fmul dword [eax]
fstp dword [eax]
jmp 0x6c5899
inc dword [ebp + 0x20]
fstp st(0)
dec dword [ebp + 0x14]
jne 0x6c5791
xor ebx, ebx
cmp dword [ebp + 0x7c], ebx
je 0x6c5906
mov ecx, dword [ebp - 8]
lea eax, [ebp - 0x4f8]
push eax
lea eax, [ebp - 0x338]
push eax
lea eax, [ebp - 0xf8]
push eax
mov eax, dword [ebp + 0x78]
lea eax, [eax + ecx*4]
push eax
mov eax, dword [ebp + 0x10]
call fcn.006c4a1c
add esp, 0x10
cmp dword [ebp + 0x10], ebx
jle 0x6c594e
push ecx
lea edi, [ebp + ebx*4 - 0x278]
fld dword [edi]
push ecx
fstp qword [esp]
call fcn.005e37a8
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0xf8]
fld dword [edi]
fstp qword [esp]
call fcn.005e37a8
fstp dword [edi]
lea edi, [ebp + ebx*4 - 0x1b8]
fld dword [edi]
fstp qword [esp]
call fcn.005e37a8
inc ebx
fstp dword [edi]
cmp ebx, dword [ebp + 0x10]
pop ecx
pop ecx
jl 0x6c590b
mov edi, dword [ebp + 0x64]
xor edx, edx
cmp dword [edi + 8], edx
je 0x6c5986
xor ecx, ecx
cmp dword [ebp + 0x10], edx
jle 0x6c5983
mov ebx, dword [edi + 4]
mov eax, ecx
shl eax, 2
fld dword [ebp + eax - 0x1b8]
inc ecx
cmp ecx, dword [ebp + 0x10]
fstp dword [eax + ebx]
mov ebx, dword [edi]
fld dword [ebp + eax - 0xf8]
fstp dword [eax + ebx]
jl 0x6c595f
mov dword [edi + 8], edx
mov eax, dword [ebp - 0x18]
cmp dword [ebp + 8], eax
jge 0x6c5a68
mov ecx, dword [ebp + 8]
mov edx, dword [ebp + 0x70]
mov eax, ecx
sub eax, ecx
mov dword [ebp + 8], eax
lea eax, [eax*4 + 0x3026cdd0]
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x74]
sub eax, edx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x18]
sub eax, ecx
lea ebx, [edx + ecx*4]
mov dword [ebp + 0x14], eax
cmp dword [ebp + 0x7c], 0
je 0x6c59fb
mov edx, dword [ebp - 8]
mov ecx, dword [ebx]
lea eax, [edi + 0xc]
push eax
push dword [ebp - 4]
lea eax, [edi + 0x20]
push dword [ebp + 0x10]
push edx
push eax
lea eax, [ebp - 0x1b8]
push eax
lea eax, [ebp - 0xf8]
push eax
mov eax, edx
shl eax, 2
add ecx, eax
lea eax, [ebp - 0x278]
call fcn.006c4c88
add esp, 0x1c
jmp 0x6c5a55
mov eax, dword [ebp + 8]
cmp eax, dword [ebp - 0xc]
jge 0x6c5a0a
mov eax, dword [ebp + 0x18]
fld dword [eax]
jmp 0x6c5a0c
fldz
lea eax, [edi + 0xc]
push eax
push dword [ebp - 4]
lea eax, [edi + 0x20]
push ecx
mov ecx, dword [ebp - 8]
fstp dword [esp]
push dword [ebp + 0x10]
push ecx
push eax
lea eax, [ebp - 0x278]
push eax
lea eax, [ebp - 0x1b8]
push eax
mov eax, dword [ebp - 0x14]
mov edx, dword [eax + ebx]
push dword [edi + 4]
mov eax, ecx
push dword [edi]
shl eax, 2
add edx, eax
push edx
mov edx, dword [ebx]
add edx, eax
lea ecx, [ebp - 0xf8]
call fcn.006c50fc
add esp, 0x2c
inc dword [ebp + 8]
add dword [ebp + 0x18], 4
add ebx, 4
dec dword [ebp + 0x14]
jne 0x6c59bc
mov ebx, dword [ebp + 0x10]
test ebx, ebx
mov ecx, dword [edi + 4]
mov edi, dword [edi]
lea edx, [ebp - 0x1b8]
lea eax, [ebp - 0xf8]
jle 0x6c5a9c
mov dword [ebp - 0xc], ebx
mov ebx, dword [eax]
mov dword [edi], ebx
mov ebx, dword [edx]
mov dword [ecx], ebx
add edi, 4
add eax, 4
add ecx, 4
add edx, 4
dec dword [ebp - 0xc]
jne 0x6c5a83
movzx eax, byte [ebp + 0x1f]
inc dword [ebp]
cmp dword [ebp], eax
jl 0x6c54be
mov eax, dword [ebp + 0x6c]
movsx ecx, byte [eax + 0x11]
movzx eax, byte [ebp + 0x1f]
sub ecx, eax
mov eax, dword [ebp + 0x64]
neg ecx
sbb ecx, ecx
pop edi
mov dword [eax + 0x10], ecx
mov ecx, dword [ebp + 0x58]
pop esi
pop ebx
call fcn.0073efff
add ebp, 0x5c
leave
ret