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

Disassembly:
sub esp, 0xa0
mov ecx, dword [esp + 0xb4]
mov edx, dword [esp + 0xb0]
push ebx
mov ebx, dword [esp + 0xa8]
push ebp
lea eax, [edx + ecx]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xb4]
add eax, dword [esp + 0xb0]
mov ebp, dword [ebx + 0x5ce0]
push esi
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x5c30]
push edi
mov edi, dword [ebx + 0x5cd0]
add ebp, edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 0x5c34]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x5c38]
push ecx
mov dword [esp + 0x48], eax
lea eax, [esp + 0x2c]
push edx
push eax
push ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x3c], edi
call fcn.0050b895
add esp, 0x10
cmp eax, 0xffffff88
ja 0x50c3f1
mov ecx, dword [esp + 0xc0]
add ecx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
test eax, eax
je 0x50c3be
lea eax, [ebx + 0x5c20]
mov dword [ebx + 0x5c6c], 1
mov esi, eax
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x24]
lea edi, [esp + 0x88]
sub eax, ecx
push eax
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x60]
push ecx
push eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0050cf18
add esp, 0xc
cmp eax, 0xffffff88
jbe 0x50c0ed
push 0xffffffffffffffec
pop eax
jmp 0x50c3f1
push dword [ebx]
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x78]
push eax
call fcn.0050b3d8
push dword [ebx + 8]
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x8c]
push eax
call fcn.0050b3d8
push dword [ebx + 4]
lea eax, [esp + 0x78]
push eax
lea eax, [esp + 0xa0]
push eax
call fcn.0050b3d8
lea eax, [esp + 0x80]
push eax
call fcn.0050b35f
add esp, 0x28
jmp 0x50c394
mov eax, dword [esp + 0x34]
test eax, eax
je 0x50c3a8
dec eax
mov dword [esp + 0x34], eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0xa4]
push eax
call fcn.0050b9c9
mov edx, dword [esp + 0x1c]
lea edi, [esp + 0x50]
mov esi, eax
mov dword [esp + 0x40], eax
pop ecx
pop ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ebx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x24], ecx
lea edi, [ebx + edx]
lea esi, [ecx + ebx]
lea eax, [esi + edx]
mov dword [esp + 0x28], esi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
add eax, 0xfffffff8
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
add ebx, eax
mov dword [esp + 0x3c], ebx
mov ebx, edi
sub ebx, dword [esp + 0x50]
cmp edx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
ja 0x50c3d5
cmp dword [esp + 0x3c], ebp
ja 0x50c3d1
cmp edi, dword [esp + 0x20]
jbe 0x50c209
push dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x30]
push dword [esp + 0x44]
push dword [esp + 0x24]
push ebp
push eax
sub esp, 0x10
mov edi, esp
push dword [esp + 0x3c]
movsd dword es:[edi], dword [esi]
push edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.0050c4a0
mov esi, eax
add esp, 0x2c
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x10], eax
jmp 0x50c380
mov eax, dword [eax]
mov dword [edx], eax
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x48]
cmp eax, 8
jbe 0x50c23c
add eax, 0xfffffff8
push eax
mov eax, dword [esp + 0x14]
add eax, 8
push eax
lea eax, [edx + 8]
push eax
call fcn.0050cb48
mov ecx, dword [esp + 0x30]
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x10], eax
mov dword [esp + 0x2c], eax
mov eax, edi
sub eax, dword [esp + 0x1c]
cmp edx, eax
jbe 0x50c2d4
mov eax, edi
sub eax, dword [esp + 0x40]
cmp edx, eax
ja 0x50c3d1
mov edx, dword [esp + 0x44]
mov eax, edx
sub eax, dword [esp + 0x1c]
add ebx, eax
lea eax, [ebx + ecx]
cmp eax, edx
ja 0x50c284
push ecx
push ebx
push edi
call fcn.0050311a
jmp 0x50c37d
mov esi, edx
sub esi, ebx
push esi
push ebx
push edi
call fcn.0050311a
mov ecx, dword [esp + 0x30]
add edi, esi
mov edx, dword [esp + 0x2c]
sub ecx, esi
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x4c], ecx
mov ebx, eax
cmp edi, edx
ja 0x50c2b2
cmp ecx, 3
jae 0x50c2ce
test ecx, ecx
je 0x50c2c5
mov edx, eax
sub edx, edi
mov al, byte [edx + edi]
mov byte [edi], al
inc edi
sub ecx, 1
jne 0x50c2ba
mov esi, dword [esp + 0x28]
jmp 0x50c380
mov esi, dword [esp + 0x28]
jmp 0x50c2d8
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x50], 8
jae 0x50c312
mov al, byte [ebx]
mov byte [edi], al
mov al, byte [ebx + 1]
mov byte [edi + 1], al
mov al, byte [ebx + 2]
mov byte [edi + 2], al
mov al, byte [ebx + 3]
mov byte [edi + 3], al
mov eax, dword [esp + 0x50]
add ebx, dword [eax*4 + 0x502a2c]
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x50]
sub ebx, dword [eax*4 + 0x502a4c]
jmp 0x50c31c
mov eax, dword [ebx]
mov dword [edi], eax
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x18]
add edi, 8
add eax, 0xfffffff3
add ebx, 8
cmp dword [esp + 0x30], eax
jbe 0x50c372
cmp edi, edx
jae 0x50c34c
sub edx, edi
push edx
push ebx
push edi
call fcn.0050cb48
mov eax, dword [esp + 0x2c]
add esp, 0xc
sub eax, edi
mov edi, dword [esp + 0x20]
add ebx, eax
mov ecx, dword [esp + 0x30]
xor edx, edx
and dword [esp + 0x38], edx
sub ecx, edi
cmp edi, dword [esp + 0x30]
cmova ecx, dword [esp + 0x38]
test ecx, ecx
je 0x50c380
mov al, byte [ebx]
inc ebx
mov byte [edi], al
inc edi
inc edx
cmp edx, ecx
jb 0x50c365
jmp 0x50c380
lea eax, [ecx - 8]
push eax
push ebx
push edi
call fcn.0050cb48
add esp, 0xc
cmp esi, 0xffffff88
ja 0x50c3d8
add dword [esp + 0x14], esi
lea eax, [esp + 0x5c]
push eax
call fcn.0050b35f
pop ecx
cmp eax, 2
jle 0x50c13d
cmp dword [esp + 0x34], 0
jne 0x50c0e5
mov edi, dword [esp + 0x58]
lea esi, [esp + 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
sub ebp, edi
sub eax, esi
cmp ebp, eax
jbe 0x50c3dc
push 0xffffffffffffffba
jmp 0x50c0e7
push 0xffffffffffffffec
jmp 0x50c3d7
push 0xffffffffffffffba
pop esi
mov eax, esi
jmp 0x50c3f1
push ebp
push edi
push esi
call fcn.005030f6
add esp, 0xc
sub ebp, dword [esp + 0xb8]
lea eax, [esi + ebp]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa0
ret