Function at 0x40c457
Capabilities:
Packed with generic packer

Disassembly:
push ebp
push ecx
pop ecx
push 0x2b
pop eax
push esp
pop ebp
push esi
push ebx
sub esp, 0x10
mov edx, dword [ebp + 8]
mov esi, dword [ebp + 0xc]
or edx, edx
je 0x40c781
lea eax, [ebp + 0x10]
mov dword [ebp - 0xc], eax
mov eax, esi
and eax, 0xf00000
cmp eax, 0x200000
je 0x40c55a
jg 0x40c499
cmp eax, 0x100000
jne case.0x40c57a.2097155
jmp 0x40c4b4
cmp eax, 0x300000
je 0x40c65e
cmp eax, 0x400000
jne case.0x40c57a.2097155
jmp 0x40c709
lea eax, [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
or ecx, ecx
je case.0x40c57a.2097155
cmp esi, 0x10001e
je 0x40c52d
ja 0x40c4ed
cmp esi, 0x100012
je 0x40c51d
cmp esi, 0x100015
je 0x40c525
cmp esi, 0x100001
jne case.0x40c57a.2097155
jmp 0x40c50c
cmp esi, 0x100020
je 0x40c53d
jb 0x40c535
cmp esi, 0x100024
je 0x40c54d
cmp esi, 0x100029
je 0x40c545
jmp case.0x40c57a.2097155
mov eax, dword [edx + 0x3e8]
or eax, eax
jne 0x40c553
mov eax, 0x41f8f0
jmp 0x40c553
mov eax, dword [edx + 0x868c]
jmp 0x40c553
mov eax, dword [edx + 0x28c]
jmp 0x40c553
mov eax, dword [edx + 0x8604]
jmp 0x40c553
mov eax, dword [edx + 0x8690]
jmp 0x40c553
lea eax, [edx + 0x8694]
jmp 0x40c553
lea eax, [edx + 0x86c8]
jmp 0x40c553
mov eax, dword [edx + 0x380]
mov dword [ecx], eax
jmp 0x40c778
lea eax, [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
or ebx, ebx
je case.0x40c57a.2097155
lea eax, [esi - 0x200002]
cmp eax, 0x28
ja case.0x40c57a.2097155
jmp dword [eax*4 + 0x41f8f4]
mov eax, dword [edx + 0x8664]
jmp 0x40c758
mov eax, dword [edx + 0x8668]
jmp 0x40c758
mov eax, dword [edx + 0x8670]
jmp 0x40c758
mov eax, dword [edx + 0x8678]
jmp 0x40c758
mov eax, dword [edx + 0x867c]
jmp 0x40c758
mov eax, dword [edx + 0x24c]
jmp 0x40c758
mov eax, dword [edx + 0x144]
jmp 0x40c758
mov eax, dword [edx + 0x8684]
jmp 0x40c758
mov eax, dword [edx + 0x8680]
jmp 0x40c758
mov eax, dword [edx + 0x8564]
jmp 0x40c758
mov eax, dword [edx + 0x8688]
jmp 0x40c758
push eax
push eax
push 0
push edx
call fcn.0040e77b
add esp, 0x10
cmp eax, 0xffffffff
jne 0x40c758
mov dword [ebx], 0xffffffff
jmp 0x40c778
mov eax, dword [edx + 0x86c4]
jmp 0x40c758
mov eax, dword [edx + 0x86f8]
jmp 0x40c758
movzx eax, byte [edx + 0x8674]
jmp 0x40c758
mov eax, dword [edx + 0x8630]
jmp 0x40c758
mov eax, dword [edx + 0x8634]
jmp 0x40c758
mov eax, dword [edx + 0x8638]
jmp 0x40c758
lea eax, [ebp + 0x14]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x10]
or eax, eax
je case.0x40c57a.2097155
lea ecx, [esi - 0x300003]
cmp ecx, 0x1e
ja case.0x40c57a.2097155
jmp dword [ecx*4 + 0x41f998]
fld qword [edx + 0x448]
jmp 0x40c705
fld qword [edx + 0x460]
jmp 0x40c705
fld qword [edx + 0x468]
jmp 0x40c705
fld qword [edx + 0x470]
jmp 0x40c705
fld qword [edx + 0x478]
jmp 0x40c705
fld qword [edx + 0x480]
jmp 0x40c705
fild qword [edx + 0x428]
jmp 0x40c705
fild qword [edx + 0x420]
jmp 0x40c705
fild qword [edx + 0x450]
jmp 0x40c705
fild qword [edx + 0x458]
jmp 0x40c705
test byte [edx + 0x440], 0x40
je 0x40c6ef
fild qword [edx + 0x410]
jmp 0x40c705
test byte [edx + 0x440], 0x20
jne 0x40c6f7
fld dword [0x41fa14]
jmp 0x40c705
fild qword [edx + 0x418]
jmp 0x40c705
fld qword [edx + 0x488]
fstp qword [eax]
jmp 0x40c778
lea eax, [ebp + 0x14]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0xc], eax
test ebx, ebx
je case.0x40c57a.2097155
cmp esi, 0x40001c
je 0x40c744
ja 0x40c72a
cmp esi, 0x40001b
jne case.0x40c57a.2097155
jmp 0x40c73c
cmp esi, 0x400022
je 0x40c752
cmp esi, 0x40002b
je 0x40c75c
jmp case.0x40c57a.2097155
mov dword [ebx], 0
jmp 0x40c778
sub esp, 0xc
push edx
call fcn.0040ca9d
add esp, 0x10
jmp 0x40c758
lea eax, [edx + 0x86fc]
mov dword [ebx], eax
jmp 0x40c778
lea eax, [edx + 0x8704]
mov dword [edx + 0x8704], 0
mov dword [ebx], eax
mov dword [edx + 0x8708], 0
xor eax, eax
jmp 0x40c781
push 0x2b
pop eax
pushal
popal
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
ret