Function at 0x4c3950
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x48]
cmp eax, dword [ecx]
ja 0x4c3973
xor edi, edi
mov eax, 0x18
call fcn.0042a440
jmp fcn.004c3950
sub esp, 0xc8
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x94], 0
mov ebx, dword [esp + 0xd0]
cmp ebx, 0
jne 0x4c3b0d
cmp byte [esp + 0xd4], 0
je 0x4c3b0d
lea ebx, [0x63a570]
mov ebp, dword [ebx]
mov dword [esp + 0x60], ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x64], ebp
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
mov dword [esp], 0x6007e0
call fcn.00424940
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x60]
mov dword [eax], ebp
mov ebp, dword [esp + 0x64]
mov dword [eax + 4], ebp
mov dword [esp + 0x44], eax
mov eax, dword [0x76c51c]
xor ebx, ebx
cmp eax, ebx
je 0x4c3ae8
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x50], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0xe0], ecx
mov dword [esp], 0x60f440
call fcn.00424940
mov edi, dword [esp + 4]
cmp edi, 0
je 0x4c3ae1
lea esi, [0x6326e0]
mov eax, edi
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebp, dword [esp + 0xcc]
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0xd0]
mov dword [eax + 0xc], ebp
mov ebp, dword [esp + 0xdc]
mov dword [eax + 0x10], ebp
mov ebp, dword [esp + 0xe0]
mov dword [eax + 0x14], ebp
mov dword [esp + 0x3c], eax
mov eax, dword [0x76c64c]
xor ebx, ebx
cmp eax, ebx
je 0x4c3abf
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], ecx
add esp, 0xc8
ret
mov dword [esp], 0x5fcb20
mov dword [esp + 4], 0x5f0ca0
mov dword [esp + 8], 0x76c64c
call fcn.00422420
mov eax, dword [esp + 0xc]
jmp 0x4c3a9b
mov dword [edi], eax
jmp 0x4c3a58
mov dword [esp], 0x5fbce0
mov dword [esp + 4], 0x5f0ca0
mov dword [esp + 8], 0x76c51c
call fcn.00422420
mov eax, dword [esp + 0xc]
jmp 0x4c3a17
mov dword [esp], 0x61ba20
call fcn.00424940
mov ecx, dword [esp + 0xd0]
mov ebx, dword [esp + 4]
mov dword [esp + 0xd8], ebx
cmp ecx, 1
jne 0x4c3b84
mov ebp, dword [esp + 0xcc]
mov dword [esp], ebp
mov dword [esp + 4], ecx
lea esi, [0x62ca58]
lea edi, [esp + 8]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.00428080
mov ecx, dword [esp + 0xd0]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x4c3b84
mov edi, dword [esp + 0xd8]
cmp edi, 0
je 0x4c3b80
add edi, 0x1c
lea esi, [0x62ca58]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add esp, 0xc8
ret
mov dword [edi], eax
jmp 0x4c3b6d
mov ebx, dword [esp + 0xcc]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call fcn.004c33c0
mov edi, dword [esp + 0xd8]
cmp edi, 0
je 0x4c41b5
lea esi, [esp + 8]
mov ecx, edi
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x94], ebx
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xe0], ebx
cmp eax, 0
mov dword [esp + 0xdc], eax
jne 0x4c3a3f
cmp ecx, 0
je 0x4c41ae
mov esi, ecx
lea edi, [esp]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004ee960
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0xd8]
cmp ebx, 0
je 0x4c41a7
mov dword [esp + 0xb8], ecx
mov dword [ebx], ecx
mov dword [esp + 0xbc], eax
mov dword [ebx + 4], eax
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov ebx, dword [esp + 0x94]
mov dword [esp + 4], ebx
lea esi, [0x62cd38]
lea edi, [esp + 8]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [esp + 0x10], 1
call fcn.004c3610
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x90], ebx
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0xd8]
cmp edi, 0
je 0x4c41a0
add edi, 0x24
lea esi, [esp + 0x1c]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x80], ebx
mov dword [esp + 0x94], edx
lea ebx, [0x62cb48]
mov edi, dword [ebx]
mov dword [esp + 0xa8], edi
mov eax, dword [ebx + 4]
mov dword [esp + 0x84], edx
mov dword [esp + 0xac], eax
cmp edx, eax
jl 0x4c4192
cmp edx, eax
jb 0x4c4199
mov ebx, dword [esp + 0x80]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
cmp eax, eax
jne 0x4c4192
mov ebp, dword [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.00428080
mov edx, dword [esp + 0x94]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x4c4192
mov eax, 1
cmp al, 0
jne 0x4c3e08
mov ebx, dword [esp + 0xd8]
mov ebp, dword [ebx + 4]
cmp ebp, 0
je 0x4c3d5b
mov ebx, dword [esp + 0xd8]
mov ebp, dword [esp + 0x90]
mov dword [ebx + 8], ebp
mov dword [ebx + 0xc], edx
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
cmp byte [esp + 0xd4], 0
je 0x4c3e08
lea ebx, [0x651620]
mov ebp, dword [ebx]
mov dword [esp + 0x70], ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x74], ebp
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
mov dword [esp], 0x6007e0
call fcn.00424940
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x70]
mov dword [eax], ebp
mov ebp, dword [esp + 0x74]
mov dword [eax + 4], ebp
mov dword [esp + 0x44], eax
mov eax, dword [0x76c51c]
xor ebx, ebx
cmp eax, ebx
je 0x4c3de6
mov edx, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0x58], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x5c], edx
mov dword [esp + 0xe0], edx
jmp 0x4c3a3f
mov dword [esp], 0x5fbce0
mov dword [esp + 4], 0x5f0ca0
mov dword [esp + 8], 0x76c51c
call fcn.00422420
mov eax, dword [esp + 0xc]
jmp 0x4c3db9
mov ebx, dword [esp + 0xd8]
mov ebp, dword [ebx + 4]
cmp ebp, 0
jne 0x4c3eb9
cmp byte [esp + 0xd4], 0
jne 0x4c40f7
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x78], ebx
lea ebx, [0x62cb68]
mov edi, dword [ebx]
mov dword [esp + 0x98], edi
mov eax, dword [ebx + 4]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x9c], eax
cmp edx, eax
jl 0x4c4184
cmp edx, eax
jb 0x4c418b
mov ebx, dword [esp + 0x78]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
cmp eax, eax
jne 0x4c4184
mov ebp, dword [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.00428080
mov edx, dword [esp + 0x94]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x4c4184
mov eax, 1
cmp al, 0
jne 0x4c40f7
mov ebx, dword [esp + 0x90]
mov dword [esp + 0x88], ebx
lea ebx, [0x62cb58]
mov edi, dword [ebx]
mov dword [esp + 0xa0], edi
mov eax, dword [ebx + 4]
mov dword [esp + 0x8c], edx
mov dword [esp + 0xa4], eax
cmp edx, eax
jl 0x4c4176
cmp edx, eax
jb 0x4c417d
mov ebx, dword [esp + 0x88]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
cmp eax, eax
jne 0x4c4176
mov ebp, dword [esp + 0xb8]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call fcn.00428080
mov edx, dword [esp + 0x94]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x4c4176
mov eax, 1
cmp al, 0
je 0x4c40f7
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
cmp edx, 2
jb 0x4c416f
mov ecx, dword [esp + 0x90]
add ecx, 2
mov eax, edx
sub eax, 2
mov dword [esp + 0xb8], ecx
mov dword [esp], ecx
mov dword [esp + 0xbc], eax
mov dword [esp + 4], eax
lea esi, [0x62cb48]
lea edi, [esp + 8]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov byte [esp + 0x10], 0
call fcn.004c3610
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc0], ecx
mov dword [esp], ecx
mov dword [esp + 0xc4], eax
mov dword [esp + 4], eax
call fcn.004c41c0
mov edi, dword [esp + 0xd8]
mov ebp, dword [esp + 8]
mov dword [edi + 0x10], ebp
mov ecx, edi
add edi, 0x14
lea esi, [esp + 0xc]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xe0], ebx
cmp eax, 0
mov dword [esp + 0xdc], eax
jne 0x4c3a3f
mov esi, ecx
cmp ecx, 0
je 0x4c4168
add esi, 0x14
lea edi, [esp]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea esi, [0x62c9c8]
lea edi, [esp + 8]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.004ed860
mov edx, dword [esp + 0x94]
movzx ebx, byte [esp + 0x10]
cmp bl, 0
je 0x4c40f7
lea ebx, [0x659560]
mov ebp, dword [ebx]
mov dword [esp + 0x68], ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 0x6c], ebp
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp], 0x6007e0
call fcn.00424940
mov eax, dword [esp + 4]
mov ebp, dword [esp + 0x68]
mov dword [eax], ebp
mov ebp, dword [esp + 0x6c]
mov dword [eax + 4], ebp
mov dword [esp + 0x44], eax
mov eax, dword [0x76c51c]
xor ebx, ebx
cmp eax, ebx
je 0x4c40d5
mov edx, dword [esp + 0x44]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0x48], eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0xe0], edx
jmp 0x4c3a3f
mov dword [esp], 0x5fbce0
mov dword [esp + 4], 0x5f0ca0
mov dword [esp + 8], 0x76c51c
call fcn.00422420
mov eax, dword [esp + 0xc]
jmp 0x4c40a8
mov ebx, dword [esp + 0x90]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], 1
call fcn.004c2af0
mov edi, dword [esp + 0xd8]
cmp edi, 0
je 0x4c4164
add edi, 0x1c
lea esi, [esp + 0xc]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov dword [esp + 0xe0], ebx
cmp eax, 0
mov dword [esp + 0xdc], eax
jne 0x4c3a3f
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
add esp, 0xc8
ret
mov dword [edi], eax
jmp 0x4c411e
mov dword [ecx], eax
jmp 0x4c4028
call fcn.004116f0
ud2
xor eax, eax
jmp 0x4c3f49
call fcn.004116f0
ud2
xor eax, eax
jmp 0x4c3eb0
call fcn.004116f0
ud2
xor eax, eax
jmp 0x4c3d12
call fcn.004116f0
ud2
mov dword [edi], eax
jmp 0x4c3c71
mov dword [ebx], eax
jmp 0x4c3c13
mov dword [ecx], eax
jmp 0x4c3bee
mov dword [edi], eax
jmp 0x4c3ba7