Function at 0x4cc160
Capabilities:
Enumerate pe sections

Disassembly:
sub esp, 0x14
mov eax, dword [esp + 0x18]
mov edx, dword [0x564cf8]
fld dword [0x56117c]
lea eax, [eax + eax*2]
push ebx
shl eax, 2
push ebp
push esi
xor ecx, ecx
lea esi, [eax + edx]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], eax
fadd dword [esi + 4]
push edi
mov dword [esp + 0x14], ecx
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x4038c0]
mov eax, dword [esp + 0x28]
mov dword [esi + 4], eax
fnstsw ax
test ah, 0x41
jne 0x4cc1b0
mov dword [esi + 4], ecx
fld dword [esi + 8]
fcomp dword [0x4014e0]
fnstsw ax
test ah, 0x41
jne 0x4cc1cb
fld dword [esi + 8]
fsub dword [0x56117c]
jmp 0x4cc1f0
push 0x320
call fcn.00431810
add eax, 0x190
mov dword [esp + 0x28], eax
fild dword [esp + 0x28]
fstp qword [esp + 0x1c]
fld dword [0x56117c]
fmul qword [esp + 0x1c]
fstp dword [esi + 8]
fld dword [esi + 8]
call dword [sym.imp.MSVBVM60.DLL___vbaFPFix]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x4014e0]
fnstsw ax
test ah, 1
jne 0x4cc227
fld dword [esp + 0x28]
fcomp dword [0x40266c]
fnstsw ax
test ah, 0x41
je 0x4cc227
mov byte [esi], 0
jmp 0x4cc273
fld dword [esp + 0x28]
fcomp dword [0x4024a8]
fnstsw ax
test ah, 1
jne 0x4cc24e
fld dword [esp + 0x28]
fcomp dword [0x403150]
fnstsw ax
test ah, 0x41
je 0x4cc24e
mov byte [esi], 1
jmp 0x4cc273
fld dword [esp + 0x28]
fcomp dword [0x4038bc]
fnstsw ax
test ah, 1
jne 0x4cc273
fld dword [esp + 0x28]
fcomp dword [0x4038b8]
fnstsw ax
test ah, 0x41
je 0x4cc273
mov byte [esi], 2
fld dword [esi + 4]
call dword [sym.imp.MSVBVM60.DLL___vbaFPFix]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fcomp dword [0x4014e0]
fnstsw ax
test ah, 1
jne 0x4cc2a8
fld dword [esp + 0x28]
fcomp dword [0x4038b4]
fnstsw ax
test ah, 0x41
je 0x4cc2a8
mov byte [esi + 1], 0
jmp 0x4cc318
fld dword [esp + 0x28]
fcomp dword [0x401788]
fnstsw ax
test ah, 1
jne 0x4cc2ca
fld dword [esp + 0x28]
fcomp dword [0x4038b0]
fnstsw ax
test ah, 0x41
jne 0x4cc2ec
fld dword [esp + 0x28]
fcomp dword [0x40257c]
fnstsw ax
test ah, 1
jne 0x4cc2f2
fld dword [esp + 0x28]
fcomp dword [0x4038c0]
fnstsw ax
test ah, 0x41
je 0x4cc2f2
mov byte [esi + 1], 1
jmp 0x4cc318
fld dword [esp + 0x28]
fcomp dword [0x401780]
fnstsw ax
test ah, 1
jne 0x4cc318
fld dword [esp + 0x28]
fcomp dword [0x402580]
fnstsw ax
test ah, 0x41
je 0x4cc318
mov byte [esi + 1], 2
mov esi, dword [esp + 0x34]
mov bl, byte [esi + 3]
test bl, bl
jbe 0x4cc4b1
cmp byte [esi], 1
jne 0x4cc3e7
cmp bl, 0x7f
jbe 0x4cc33d
mov dword [esp + 0x14], 0x3c0
mov eax, dword [0x564d04]
mov ecx, ebx
and ecx, 0xff
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ecx, edi
lea eax, [edx + ecx*8]
mov cl, byte [edx + ecx*8 + 4]
cmp cl, 0xff
jae 0x4cc4b1
mov dl, byte [eax + 2]
lea edi, [esp + 0x10]
mov byte [esp + 0x28], dl
mov edx, dword [0x562aa0]
push edi
push 0x3f800000
mov ebp, dword [edx]
xor edx, edx
mov dl, byte [eax + 3]
and ecx, 0xff
push edx
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
movsx edx, word [eax]
movzx di, byte [esp + 0x38]
push edx
movzx dx, byte [esi + 4]
add edx, 8
imul edx, edi
mov edi, dword [esp + 0x28]
movsx edx, dx
add edx, edi
push edx
xor edx, edx
mov dl, byte [eax + 5]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x25]
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [0x564d14]
lea ecx, [ecx + eax - 0x1f]
mov eax, dword [0x562aa0]
push ecx
push edx
push eax
call dword [ebp + 0x7c]
test eax, eax
fnclex
jge 0x4cc4b1
jmp 0x4cc49c
mov dl, 0x7f
mov ecx, ebx
cmp dl, bl
sbb eax, eax
and ecx, 0xff
and eax, 0x514
add eax, 0x780
mov dword [esp + 0x14], eax
mov eax, dword [0x564d08]
mov edi, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ecx, edi
lea eax, [edx + ecx*8]
mov cl, byte [edx + ecx*8 + 4]
cmp cl, 0xff
jae 0x4cc4b1
mov dl, byte [eax + 2]
lea edi, [esp + 0x10]
mov byte [esp + 0x28], dl
mov edx, dword [0x562aa0]
push edi
push 0x3f800000
mov ebp, dword [edx]
xor edx, edx
mov dl, byte [eax + 3]
and ecx, 0xff
push edx
mov edx, dword [esp + 0x34]
and edx, 0xff
push edx
movsx edx, word [eax]
movzx di, byte [esp + 0x38]
push edx
movzx dx, byte [esi + 4]
add edx, 8
imul edx, edi
mov edi, dword [esp + 0x28]
movsx edx, dx
add edx, edi
push edx
xor edx, edx
mov dl, byte [eax + 5]
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x25]
mov eax, dword [esp + 0x44]
push edx
mov edx, dword [0x564d14]
lea ecx, [ecx + eax - 0x1f]
mov eax, dword [0x562aa0]
push ecx
push edx
push eax
call dword [ebp + 0x7c]
test eax, eax
fnclex
jge 0x4cc4b1
mov ecx, dword [0x562aa0]
push 0x7c
push 0x420714
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
lea edi, [esp + 0x10]
mov al, byte [esi]
push edi
mov ebp, dword [esp + 0x1c]
movzx di, byte [esi + 1]
shl edi, 6
movsx edi, di
push 0x3f800000
push 0x40
push 0x27
push edi
mov edi, dword [0x564cf8]
mov ecx, dword [0x562aa0]
movzx ax, al
movzx di, byte [edi + ebp + 1]
lea eax, [eax + eax*2]
mov edx, dword [ecx]
lea eax, [edi + eax - 3]
lea edi, [eax + eax*4]
shl edi, 3
sub edi, eax
movsx eax, di
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [esp + 0x48]
push eax
mov eax, dword [0x564d18]
push eax
push ecx
call dword [edx + 0x7c]
test eax, eax
fnclex
jge 0x4cc52b
mov ecx, dword [0x562aa0]
push 0x7c
push 0x420714
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
cmp byte [esi], 1
jne 0x4cc600
mov eax, dword [0x564d0c]
xor ecx, ecx
mov cl, byte [esi + 2]
xor dx, dx
mov edi, dword [eax + 0x14]
sub ecx, edi
mov edi, dword [eax + 0xc]
movzx bp, byte [esi + 5]
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov al, byte [ecx + edi + 2]
mov dl, al
imul ebp, edx
lea edx, [ebp + ebp*2]
mov ebp, dword [esp + 0x18]
movsx edx, dx
mov dword [esp + 0x34], edx
mov edx, dword [0x564cf8]
mov dl, byte [edx + ebp]
lea ebp, [esp + 0x10]
mov byte [esp + 0x28], dl
and edx, 0xff
add edx, ecx
push ebp
add edx, edi
push 0x3f800000
mov dword [esp + 0x20], edx
mov edx, dword [0x562aa0]
mov edx, dword [edx]
mov dword [esp + 0x24], edx
xor edx, edx
mov dl, byte [ecx + edi + 3]
push edx
mov edx, eax
imul byte [esp + 0x34]
movsx ecx, word [ecx + edi]
and edx, 0xff
and eax, 0xff
push edx
push ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
add eax, ecx
xor edx, edx
push eax
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dl, byte [eax + 7]
mov cl, byte [eax + 4]
mov eax, dword [esp + 0x44]
add edx, edi
push edx
mov edx, dword [0x564d1c]
add ecx, eax
mov eax, dword [0x562aa0]
push ecx
mov ecx, dword [esp + 0x3c]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4cc6dc
jmp 0x4cc6c7
mov eax, dword [0x564d10]
xor ecx, ecx
mov cl, byte [esi + 2]
mov edi, dword [eax + 0x14]
sub ecx, edi
mov edi, dword [eax + 0xc]
movzx dx, byte [esi + 5]
lea ecx, [ecx + ecx*4]
shl ecx, 1
mov al, byte [ecx + edi + 2]
movzx bp, al
imul edx, ebp
add edx, 0x15f
mov ebp, dword [esp + 0x18]
lea edx, [edx + edx*2]
movsx edx, dx
mov dword [esp + 0x34], edx
mov edx, dword [0x564cf8]
mov dl, byte [edx + ebp]
lea ebp, [esp + 0x10]
mov byte [esp + 0x28], dl
and edx, 0xff
add edx, ecx
push ebp
add edx, edi
push 0x3f800000
mov dword [esp + 0x24], edx
mov edx, dword [0x562aa0]
mov edx, dword [edx]
mov dword [esp + 0x20], edx
xor edx, edx
mov dl, byte [ecx + edi + 3]
push edx
mov edx, eax
imul byte [esp + 0x34]
movsx ecx, word [ecx + edi]
and edx, 0xff
and eax, 0xff
push edx
push ecx
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
add eax, ecx
xor edx, edx
push eax
mov eax, dword [esp + 0x34]
xor ecx, ecx
mov dl, byte [eax + 7]
mov cl, byte [eax + 4]
mov eax, dword [esp + 0x44]
add edx, edi
push edx
mov edx, dword [0x564d1c]
add ecx, eax
mov eax, dword [0x562aa0]
push ecx
mov ecx, dword [esp + 0x38]
push edx
push eax
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4cc6dc
mov edx, dword [0x562aa0]
push 0x7c
push 0x420714
push edx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
test bl, bl
jbe 0x4cc7eb
cmp byte [esi], 1
jne 0x4cc763
mov eax, dword [0x564d04]
and ebx, 0xff
lea edx, [esp + 0x10]
mov edi, dword [0x562aa0]
mov ecx, dword [eax + 0x14]
mov eax, dword [eax + 0xc]
sub ebx, ecx
push edx
xor edx, edx
push 0x3f800000
mov dl, byte [eax + ebx*8 + 3]
lea ebx, [eax + ebx*8]
xor eax, eax
push edx
movsx edx, word [ebx]
mov al, byte [ebx + 2]
mov ecx, dword [edi]
push eax
push edx
xor edx, edx
mov dl, byte [esi + 4]
mov esi, dword [esp + 0x28]
imul edx, eax
add edx, esi
xor eax, eax
mov al, byte [ebx + 7]
push edx
mov edx, dword [esp + 0x48]
lea eax, [eax + edx - 0x25]
xor edx, edx
mov dl, byte [ebx + 6]
push eax
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x1f]
mov eax, dword [0x564d14]
push edx
push eax
push edi
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4cc7eb
jmp 0x4cc7d6
mov eax, dword [0x564d08]
and ebx, 0xff
mov edi, dword [0x562aa0]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0xc]
sub ebx, ecx
xor eax, eax
mov ecx, dword [edi]
lea ebx, [edx + ebx*8]
lea edx, [esp + 0x10]
push edx
xor edx, edx
mov dl, byte [ebx + 3]
mov al, byte [ebx + 2]
push 0x3f800000
push edx
movsx edx, word [ebx]
push eax
push edx
xor edx, edx
mov dl, byte [esi + 4]
mov esi, dword [esp + 0x28]
imul edx, eax
add edx, esi
xor eax, eax
mov al, byte [ebx + 7]
push edx
mov edx, dword [esp + 0x48]
lea eax, [eax + edx - 0x25]
xor edx, edx
mov dl, byte [ebx + 6]
push eax
mov eax, dword [esp + 0x48]
lea edx, [edx + eax - 0x1f]
mov eax, dword [0x564d14]
push edx
push eax
push edi
call dword [ecx + 0x7c]
test eax, eax
fnclex
jge 0x4cc7eb
mov ecx, dword [0x562aa0]
push 0x7c
push 0x420714
push ecx
push eax
call dword [sym.imp.MSVBVM60.DLL___vbaHresultCheckObj]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 0x10