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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x160
lea esi, [esp + 0x28]
mov ebp, ecx
mov edi, edx
mov ecx, esi
call fcn.00540bd7
mov ebx, dword [esi]
cmp ebx, 0x22
jne 0x53f450
lea eax, [esp + 0xf0]
mov dword [esp], ebp
mov ebp, edi
lea esi, [esp + 0x2c]
mov ecx, 0xe
lea ebx, [esp + 0x84]
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xe
mov edi, ebx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
mov edi, ebp
call fcn.0053ba50
mov eax, dword [ebp]
mov esi, dword [edi + 8]
cmp dword [eax + 0x50], esi
jne 0x53f48d
mov ebp, dword [esp]
mov edx, edi
lea ecx, [ebp + 4]
call fcn.0053f2a9
mov al, byte [esp + 0xb8]
mov dword [ebp], 0x110008
add al, 0xfe
cmp al, 4
jb 0x53f482
lea ecx, [esp + 0x84]
call fcn.00537708
jmp 0x53f482
lea eax, [esp + 0x2c]
lea edx, [esp + 0xf0]
mov ecx, 0xe
mov edi, edx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp + 8]
mov ecx, 0xe
mov esi, edx
mov eax, dword [eax + 0x38]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 4], ebx
mov dword [ebp + 0x40], eax
mov dword [ebp], 0x110008
add esp, 0x160
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call fcn.0053bce6
cmp eax, 0x2d
jne 0x53f4b5
mov ecx, edi
call fcn.00540c24
cmp eax, 0x5d
je 0x53f4b5
mov ecx, edi
call fcn.00540c24
cmp eax, 0x2d
jne 0x53f5fb
mov bl, byte [esp + 0xb8]
mov eax, 4
add bl, 0xfe
movzx ecx, bl
cmp bl, 4
cmovb eax, ecx
test al, al
je 0x53f541
movzx eax, al
cmp eax, 3
je 0x53f4fe
cmp eax, 4
jne 0x53f588
mov edi, dword [esp]
lea esi, [esp + 0x84]
mov ecx, 0xe
mov dword [edi], 0x110004
add edi, 4
rep movsd dword es:[edi], dword [esi]
jmp 0x53f482
mov ebp, dword [esp]
movsd xmm1, qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
mov eax, dword [esp + 0x9c]
mov dword [ebp], 0x110005
movsd qword [ebp + 0xc], xmm1
movsd xmm1, qword [esp + 0x94]
movsd qword [ebp + 4], xmm0
mov dword [ebp + 0x1c], eax
movsd qword [ebp + 0x14], xmm1
jmp 0x53f482
mov ebp, dword [esp]
movsd xmm1, qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
movsd xmm2, qword [esp + 0x94]
mov dword [ebp], 0x110001
movsd qword [ebp + 0xc], xmm1
movsd xmm1, qword [esp + 0x9c]
movsd qword [ebp + 4], xmm0
movsd qword [ebp + 0x14], xmm2
movsd qword [ebp + 0x1c], xmm1
jmp 0x53f482
mov ebp, dword [edi + 4]
mov ecx, esi
call fcn.0059c336
mov edi, esi
mov esi, eax
mov dword [esp + 4], edx
push edi
push ebp
push eax
call fcn.0064a810
add esp, 0xc
mov ebp, dword [esp]
mov eax, dword [esp + 4]
movsd xmm1, qword [esp + 0x8c]
movsd xmm0, qword [esp + 0x84]
cmp bl, 4
mov dword [ebp + 4], 1
mov dword [ebp + 0x20], esi
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], edi
movsd qword [ebp + 0x34], xmm1
movsd xmm1, qword [esp + 0x94]
movsd qword [ebp + 0x2c], xmm0
movsd qword [ebp + 0x3c], xmm1
mov dword [ebp], 0x110008
jae 0x53f442
jmp 0x53f482
mov ecx, edi
call fcn.0053ec3c
test al, al
je 0x53f421
mov dword [esp + 4], esi
lea esi, [esp + 0x28]
mov edx, edi
mov ecx, esi
call fcn.00540bd7
mov edx, dword [esi]
cmp edx, 0x22
jne 0x53f676
lea edx, [esp + 0xf0]
lea esi, [esp + 0x2c]
mov ecx, 0xe
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [esp + 0x128]
mov ecx, 0xe
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov cl, byte [esp + 0xb8]
add cl, 0xfe
movzx edx, cl
cmp cl, 4
mov ecx, 4
cmovae edx, ecx
movzx edx, dl
lea esi, [edx - 1]
cmp esi, 3
jb 0x53f6b0
test edx, edx
jne 0x53f6a9
lea ebx, [esp + 0x88]
jmp 0x53f6b0
lea eax, [esp + 0x2c]
lea ebx, [esp + 0xf0]
mov ecx, 0xe
mov edi, ebx
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xe
mov esi, ebx
mov ebp, dword [esp]
mov eax, dword [eax + 0x38]
lea edi, [ebp + 8]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp + 4], edx
mov dword [ebp + 0x40], eax
jmp 0x53f42e
lea ebx, [esp + 0xa0]
mov al, byte [esp + 0x15c]
add al, 0xfe
movzx edx, al
cmp al, 4
mov byte [esp + 8], al
lea eax, [esp + 0x128]
cmovb ecx, edx
movzx ecx, cl
lea edx, [ecx - 1]
cmp edx, 3
jb 0x53f6eb
test ecx, ecx
jne 0x53f6e4
lea eax, [esp + 0x12c]
jmp 0x53f6eb
lea eax, [esp + 0x144]
mov ecx, dword [eax + 0x14]
movsd xmm0, qword [eax + 0xc]
movsd xmm1, qword [ebx]
mov eax, dword [ebx + 8]
mov ebp, dword [ebp + 4]
mov edi, dword [esp + 4]
lea esi, [esp + 0x28]
lea edx, [esp + 0x84]
mov dword [esp + 0xd0], ecx
movsd qword [esp + 0xc8], xmm0
movsd qword [esp + 0xbc], xmm1
mov dword [esp + 0xc4], eax
mov ecx, esi
push edi
push ebp
call fcn.00540ea0
add esp, 8
mov eax, dword [esi]
cmp eax, 0x22
jne 0x53f8bf
lea esi, [esp + 0x28]
lea edx, [esp + 0x128]
movsd xmm0, qword [esi + 8]
movsd xmm2, qword [esi + 0x10]
movsd xmm1, qword [esi + 0x18]
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 4]
mov ecx, esi
movsd qword [esp + 0xc], xmm0
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0x1c], xmm1
mov dword [esp + 0x24], eax
push edi
push ebp
call fcn.00540ea0
add esp, 8
mov eax, dword [esi]
cmp eax, 0x22
jne 0x53f965
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x30]
movsd xmm2, qword [esp + 0x40]
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x2c]
mov edx, ebx
movsd qword [esp + 0x70], xmm1
movsd qword [esp + 0xf8], xmm1
movsd xmm1, qword [esp + 0xcc]
movsd qword [esp + 0xf0], xmm0
movsd qword [esp + 0x100], xmm2
mov dword [esp + 0x108], ecx
movsd qword [esp + 0x78], xmm2
movsd xmm2, qword [esp + 0xbc]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x24]
cmp ebx, eax
mov ebx, dword [esp]
movsd qword [esp + 0x68], xmm0
movsd qword [esp + 0x11c], xmm1
movsd xmm1, qword [esp + 0xc4]
movsd qword [esp + 0x10c], xmm2
movsd xmm2, qword [esp + 0xc]
mov dword [esp + 0xec], ecx
movsd qword [esp + 0x114], xmm1
movsd xmm1, qword [esp + 0x1c]
movsd qword [esp + 0xd4], xmm2
movsd qword [esp + 0xe4], xmm1
movsd xmm1, qword [esp + 0x14]
movsd qword [esp + 0xdc], xmm1
jbe 0x53f9ff
mov edi, dword [esp + 4]
mov ecx, edi
call fcn.0059c336
mov esi, eax
mov dword [esp + 8], edx
push edi
push ebp
push eax
call fcn.0064a810
add esp, 0xc
lea ecx, [esp + 0x10c]
mov eax, dword [esp + 8]
mov dword [ebx + 4], 2
mov dword [ebx + 0x20], esi
movsd xmm1, qword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [ebx + 0x24], eax
mov dword [ebx + 0x28], edi
movsd qword [ebx + 0x34], xmm1
movsd xmm1, qword [ecx + 0x10]
movsd qword [ebx + 0x2c], xmm0
movsd qword [ebx + 0x3c], xmm1
mov dword [ebx], 0x110008
jmp 0x53f482
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov esi, dword [esp]
movsd xmm0, qword [esp + 0x30]
cmp byte [esp + 8], 4
mov ecx, dword [esp + 0x2c]
movsd qword [esp + 0x14], xmm2
movsd qword [esp + 0x1c], xmm1
movsd xmm2, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x54]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x64]
movsd qword [esp + 0xc], xmm0
movsd qword [esi + 0x38], xmm2
movsd qword [esi + 0x30], xmm1
movsd xmm2, qword [esp + 0x4c]
movsd xmm1, qword [esp + 0x1c]
mov dword [esi + 0x40], edx
mov edx, dword [esp + 0x24]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x1c], xmm1
movsd xmm2, qword [esp + 0xc]
movsd xmm1, qword [esp + 0x14]
mov dword [esi + 0x24], edx
movsd qword [esi + 0x14], xmm1
movsd qword [esi + 0xc], xmm2
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi], 0x110008
jb 0x53f482
lea ecx, [esp + 0x128]
jmp 0x53f449
movsd xmm2, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x40]
mov edx, dword [esp + 0x48]
mov esi, dword [esp]
movsd xmm0, qword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x78], xmm1
movsd xmm2, qword [esp + 0x5c]
movsd xmm1, qword [esp + 0x54]
mov dword [esp + 0x80], edx
mov edx, dword [esp + 0x64]
movsd qword [esp + 0x68], xmm0
movsd qword [esi + 0x38], xmm2
movsd qword [esi + 0x30], xmm1
movsd xmm2, qword [esp + 0x4c]
movsd xmm1, qword [esp + 0x78]
mov dword [esi + 0x40], edx
mov edx, dword [esp + 0x80]
movsd qword [esi + 0x28], xmm2
movsd qword [esi + 0x1c], xmm1
movsd xmm2, qword [esp + 0x68]
movsd xmm1, qword [esp + 0x70]
mov dword [esi + 0x24], edx
movsd qword [esi + 0x14], xmm1
movsd qword [esi + 0xc], xmm2
mov dword [esi + 4], eax
mov dword [esi + 8], ecx
mov dword [esi], 0x110008
jmp 0x53f482
mov ecx, dword [esp + 0xec]
movsd xmm0, qword [esp + 0xe4]
movsd xmm2, qword [esp + 0xd4]
movsd xmm1, qword [esp + 0xdc]
lea edi, [ebx + 0x24]
lea esi, [esp + 0xf0]
mov dword [ebx + 0x1c], ecx
movsd qword [ebx + 0x14], xmm0
movsd qword [ebx + 0xc], xmm1
movsd qword [ebx + 4], xmm2
mov ecx, 0xd
rep movsd dword es:[edi], dword [esi]
mov dword [ebx], edx
mov dword [ebx + 0x20], eax
jmp 0x53f482