Function at 0x46d616
Capabilities:
Packed with generic packer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5e0
push ebx
push ecx
push edx
push edi
push 0x28
call fcn.0047695d
call fcn.00472df1
cmp word [esi], 0x29
jne 0x46d63f
add esi, 2
xor eax, eax
jmp 0x46d8ba
lea edi, [ebp - 0x5d8]
mov ecx, 0x160
xor eax, eax
rep stosd dword es:[edi], eax
xor ebx, ebx
lea edi, [ebp - 0x58]
nop
push edi
mov ecx, 0x16
xor eax, eax
rep stosd dword es:[edi], eax
pop edi
call fcn.004745ed
mov dword [ebp - 0x5dc], 0
push 0x403ebc
push 0x4670fc
call dword [sym.imp.kernel32.dll_lstrcmpiW]
cmp eax, 0
jne 0x46d692
mov dword [ebp - 0x5dc], 1
call fcn.004745ed
call fcn.00472df1
cmp dword [0x405084], 9
je 0x46d6a9
cmp dword [0x405084], 0xa
jne 0x46d705
cmp word [esi], 0x5d
jne 0x46d705
lea edx, [ebp - 0x5e0]
push edx
call fcn.00475942
mov edx, dword [0x405084]
mov dword [edi + 0x40], edx
mov edx, dword [eax + 0x48]
mov dword [edi + 0x48], edx
mov edx, dword [eax + 0x4c]
mov dword [edi + 0x4c], edx
mov edx, dword [eax + 0x50]
mov dword [edi + 0x50], edx
mov edx, dword [eax + 0x44]
cmp dword [ebp - 0x5dc], 1
jne 0x46d6e7
mov dword [edi + 0x54], eax
jmp 0x46d700
push edx
call fcn.0046bfb8
mov ecx, eax
push ecx
call fcn.0046bf6e
push ecx
push edx
push eax
call fcn.0046c00d
mov dword [edi + 0x44], eax
jmp 0x46d86b
cmp dword [0x405084], 3
je 0x46d737
cmp dword [0x405084], 0xb
je 0x46d737
cmp dword [0x405084], 8
jne 0x46d72e
cmp eax, 0xe2
jl 0x46d72e
cmp eax, 0xf5
jle 0x46d737
cmp dword [0x405084], 0xa
jne 0x46d78e
cmp dword [ebp - 0x5dc], 1
jne 0x46d767
cmp dword [0x405084], 3
jne 0x46d74e
jmp 0x404ff7
call fcn.0046c56a
cmp eax, 0
jne 0x46d75f
push 0
call fcn.0046c87d
cmp eax, 0
je 0x46d767
mov dword [edi + 0x54], eax
mov esi, dword [0x4050c4]
lea edx, [ebp - 0x5e0]
push edx
call fcn.0046eceb
mov eax, dword [ebp - 0x5e0]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], 0xb
jmp 0x46d86b
cmp dword [0x405084], 0xd
jne 0x46d819
cmp word [esi], 0x5d
jne 0x46d819
add esi, 2
call fcn.00476fd3
pushal
mov esi, eax
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x5dc], 1
je 0x46d816
lea ebx, [ebp - 0x58]
mov eax, dword [ebx + 0x50]
test eax, eax
je 0x46d816
push eax
call fcn.0046bf6e
mov dword [0x4050f4], eax
mov edi, eax
mov esi, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x4c]
imul ecx, dword [ebx + 0x48]
nop
nop
nop
push ecx
push esi
push edi
mov ecx, 0x16
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ecx
cmp dword [esi + 0x40], 0xb
jne 0x46d7fd
push dword [esi + 0x44]
call fcn.00472db1
jmp 0x46d800
mov eax, dword [esi + 0x44]
mov dword [edi + 0x44], eax
add esi, 0x58
add edi, 0x58
sub ecx, 1
jne 0x46d7e0
mov eax, dword [0x4050f4]
mov dword [ebx + 0x44], eax
popal
jmp 0x46d86b
cmp dword [ebp - 0x5dc], 1
jne 0x46d849
cmp dword [0x405084], 5
je 0x46d830
jmp 0x404ff7
call fcn.0046c56a
cmp eax, 0
jne 0x46d841
push 0
call fcn.0046c8d9
cmp eax, 0
je 0x46d849
mov dword [edi + 0x54], eax
mov esi, dword [0x4050c4]
lea edx, [ebp - 0x5e0]
push edx
call fcn.00475b7f
mov eax, dword [ebp - 0x5e0]
mov dword [edi + 0x44], eax
mov dword [edi + 0x40], 5
imul eax, ebx, 0x58
lea edx, [ebp - 0x5d8]
add eax, edx
push 0x58
push edi
push eax
call fcn.0046c00d
add ebx, 1
call fcn.00472df1
cmp word [esi], 0x2c
jne 0x46d895
add esi, 2
jmp 0x46d654
push 0x29
call fcn.0047695d
mov ecx, ebx
lea edx, [ebp - 0x5d8]
sub ecx, 1
nop
imul eax, ecx, 0x58
add eax, edx
push eax
call fcn.0046d9ab
sub ecx, 1
jge 0x46d8a8
mov eax, ebx
pop edi
pop edx
pop ecx
pop ebx
leave
ret