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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xec
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
mov eax, dword [0x100c51b8]
xor eax, esp
mov dword [esp + 0xe8], eax
test ecx, ecx
mov eax, 0xe40ef69c
mov esi, 0xc929c779
cmove esi, eax
mov dword [esp + 0x84], esi
lea eax, [edx + ecx]
mov dword [esp + 0x80], eax
mov eax, 0x61d324fe
lea esi, [esp + 0xb0]
mov dword [esp + 0x20], ecx
cmp eax, 0xf1738e1d
jle 0x10051efc
cmp eax, 0x3a36fb8a
jle 0x10051f61
cmp eax, 0x61d324fd
jg 0x10051ff8
cmp eax, 0x49a10fa0
jg 0x1005224a
cmp eax, 0x3a36fb8b
je 0x1005248d
cmp eax, 0x3efe38ab
jne 0x10051eac
mov eax, dword [esp + 0x5c]
cmp eax, 0x58
mov eax, 0x63d86d9b
mov ecx, 0x150fd082
jmp 0x1005261f
cmp eax, 0xba81faaa
jg 0x10051f9b
cmp eax, 0x93bde1a2
jle 0x10052141
cmp eax, 0xb5c3abb5
jg 0x10052328
cmp eax, 0x93bde1a3
je 0x100524a8
cmp eax, 0xa1e4a240
jne 0x10051eac
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x110]
mov eax, dword [ecx + 0x24]
cmp dword [ecx + 0x20], 1
sbb eax, 0
mov eax, 0x84c1deeb
mov ecx, 0xf1738e1e
cmovl eax, ecx
jmp 0x10051eac
cmp eax, 0x457a170
jle 0x1005217c
cmp eax, 0x18d9e535
jg 0x10052350
cmp eax, 0x457a171
je 0x100524b2
cmp eax, 0x150fd082
jne 0x10051eac
mov eax, 0x63d86d9b
mov ebx, dword [esp + 0x58]
jmp 0x10051eac
cmp eax, 0xd9fd010c
jle 0x100521fc
cmp eax, 0xe6d63543
jg 0x100523d9
cmp eax, 0xd9fd010d
je 0x100524c9
cmp eax, 0xe40ef69c
jne 0x10051eac
movzx eax, byte [esp + 0x20]
and eax, 1
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x110]
mov eax, dword [eax + 0x14]
mov ecx, 0xe00
and eax, ecx
cmp eax, 0x800
mov eax, 0x63d86d9b
mov ecx, 0x49a10fa1
jmp 0x1005261f
cmp eax, 0x68913857
jg 0x10052458
cmp eax, 0x61d324fe
je 0x100524fd
cmp eax, 0x63d86d9b
jne 0x10051eac
mov dword [esp + 0x24], ebx
mov edi, dword [esp + 0x110]
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 4]
mov dword [esp + 0xb4], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp], esi
call fcn.1004dfab
mov esi, eax
lea ecx, [esp + 0xb0]
call fcn.1004e112
mov dword [esp + 0x30], ebx
lea ebx, [esp + 0xd0]
mov dword [esp + 0x60], ebx
mov eax, dword [esp + 0x60]
xor eax, eax
mov dword [esp + 0xd0], eax
mov dword [esp + 0xe0], eax
mov dword [esp + 0xe4], 0xf
mov byte [esp + 0xd0], 0
mov dword [esp + 4], eax
mov eax, dword [esp + 0x11c]
mov dword [esp], eax
mov ecx, ebx
call fcn.10052c0a
sub esp, 8
mov ecx, ebx
call fcn.10007c1e
mov edx, dword [esi]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x118]
mov dword [esp], eax
mov ecx, esi
lea esi, [esp + 0xb0]
call dword [edx + 0x1c]
sub esp, 0xc
mov eax, dword [edi + 0x30]
mov ecx, dword [eax + 4]
mov dword [esp + 0xb4], ecx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp], esi
call fcn.1005287d
mov dword [esp + 0x64], eax
mov ecx, esi
call fcn.1004e112
lea ebx, [esp + 0xb8]
mov dword [esp + 0x68], ebx
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
mov dword [esp], ebx
call dword [eax + 0x14]
sub esp, 4
mov ecx, ebx
mov ebx, dword [esp + 0x30]
call fcn.10007bca
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
movsx eax, byte [eax]
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
cmp eax, 0x7f
mov eax, 0x457a171
mov ecx, 0xa1e4a240
cmove eax, ecx
jmp 0x10051eac
cmp eax, 0x84c1deeb
je 0x10052511
cmp eax, 0x85d3e2ca
je 0x10052531
cmp eax, 0x92430ecb
jne 0x10051eac
mov eax, 0xd9fd010d
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x4c], ecx
jmp 0x10051eac
cmp eax, 0xf1738e1e
je 0x10052553
cmp eax, 0x824177
je 0x10052565
cmp eax, 0x309e72b
jne 0x10051eac
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x7c]
sub ecx, eax
mov dword [esp + 0x74], ecx
movsx eax, byte [esp + 0x1f]
mov ecx, dword [esp + 0x74]
mov dword [esp + 8], eax
mov dword [esp], ecx
mov dword [esp + 4], 1
lea ecx, [esp + 0xd0]
call fcn.100529f0
sub esp, 0xc
mov eax, dword [esp + 0x3c]
inc eax
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cmp byte [eax], 0
mov eax, 0x92430ecb
mov ecx, 0xb79cbceb
cmovg eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x44], ecx
jmp 0x10051eac
cmp eax, 0xba81faab
je 0x10052592
cmp eax, 0xbdbd96d3
je 0x100525a9
cmp eax, 0xc929c779
jne 0x10051eac
mov eax, dword [esp + 0x118]
movsx eax, byte [eax]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
cmp eax, 0x2b
mov eax, 0xbdbd96d3
mov ecx, 0xe40ef69c
cmove eax, ecx
mov cl, 1
mov dword [esp + 0x20], ecx
jmp 0x10051eac
cmp eax, 0x49a10fa1
je 0x100525c1
cmp eax, 0x51d5e424
jne 0x10051eac
lea ecx, [esp + 0xd0]
call fcn.10007c1e
lea edi, [esp + 0x108]
movsd xmm0, qword [edi]
movsd qword [esp + 0xa0], xmm0
mov ecx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0xa0]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.10052b92
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [edi + 4], edx
mov dword [edi], ecx
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], ecx
mov ecx, 0x913d318c
cmp ecx, 0x38c07aae
je 0x1005230c
cmp ecx, 0xb2688834
je 0x100525ed
cmp ecx, 0x913d318c
jne 0x100522d8
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
mov ecx, 0x38c07aae
mov edx, 0xb2688834
cmove ecx, edx
jmp 0x100522d8
movsx eax, byte [esp + 0x114]
mov dword [esp], eax
mov ecx, esi
call fcn.10053530
sub esp, 4
mov eax, dword [esp + 0x28]
dec eax
jmp 0x100522d3
cmp eax, 0xb5c3abb6
je 0x10052606
cmp eax, 0xb79cbceb
jne 0x10051eac
mov eax, 0x92430ecb
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x44], ecx
jmp 0x10051eac
cmp eax, 0x18d9e536
je 0x1005262b
cmp eax, 0x38734051
jne 0x10051eac
lea eax, [esp + 0x108]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x40]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb0], ecx
mov ecx, 0x913d318c
cmp ecx, 0x38c07aae
je 0x100523bd
cmp ecx, 0xb2688834
je 0x10052672
cmp ecx, 0x913d318c
jne 0x10052389
mov dword [esp + 0x28], eax
cmp dword [esp + 0x28], 0
mov ecx, 0x38c07aae
mov edx, 0xb2688834
cmove ecx, edx
jmp 0x10052389
movsx eax, byte [esp + 0x114]
mov dword [esp], eax
mov ecx, esi
call fcn.10053530
sub esp, 4
mov eax, dword [esp + 0x28]
dec eax
jmp 0x10052384
cmp eax, 0xe6d63544
je 0x100526ef
cmp eax, 0xe8389817
jne 0x10051eac
lea ecx, [esp + 0xd0]
call fcn.10007c1e
lea edi, [esp + 0x108]
movsd xmm0, qword [edi]
movsd qword [esp + 0x98], xmm0
mov ecx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0x98]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], esi
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.10052b92
movsd xmm0, qword [esp + 0xb0]
movsd qword [edi], xmm0
mov eax, 0x68913858
mov ebp, dword [esp + 0x40]
jmp 0x10051eac
cmp eax, 0x73e65576
jne 0x1005270b
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx]
call dword [eax + 0x10]
mov byte [esp + 0x1f], al
mov eax, 0xd9fd010d
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x48], ecx
jmp 0x10051eac
mov eax, dword [esp + 0x38]
cmp eax, 0x100
mov eax, 0xe8389817
mov ecx, 0x51d5e424
cmove eax, ecx
jmp 0x10051eac
mov eax, 0xa1e4a240
jmp 0x10051eac
cmp dword [esp + 0x70], 0
mov eax, 0xa1e4a240
mov ecx, 0x73e65576
cmovg eax, ecx
jmp 0x10051eac
mov eax, dword [esp + 0x48]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
movsx eax, byte [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
cmp eax, 0x7f
mov eax, 0xba81faab
mov ecx, 0x93bde1a3
cmove eax, ecx
jmp 0x10051eac
mov dword [esp + 0x20], 0
mov eax, dword [esp + 0x84]
jmp 0x10051eac
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x110]
cmp eax, dword [ecx + 0x20]
mov eax, 0xf1738e1e
mov ecx, 0xe6d63544
cmovb eax, ecx
jmp 0x10051eac
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x7c]
sub ecx, eax
mov eax, dword [esp + 0x2c]
cmp eax, ecx
mov eax, 0x93bde1a3
mov ecx, 0x309e72b
cmovb eax, ecx
jmp 0x10051eac
mov dword [esp + 0x50], 0
mov eax, 0x18d9e536
jmp 0x10051eac
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x118]
movsx eax, byte [eax + ecx + 1]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
cmp eax, 0x78
mov eax, 0x3efe38ab
mov ecx, 0x150fd082
cmove eax, ecx
jmp 0x10051eac
cmp dword [esp + 0x2c], 0
mov eax, 0x93bde1a3
mov ecx, 0x85d3e2ca
cmovg eax, ecx
jmp 0x10051eac
mov eax, dword [esp + 0x54]
cmp eax, 0x2d
sete al
mov dword [esp + 0x20], eax
mov eax, 0xe40ef69c
jmp 0x10051eac
mov eax, dword [esp + 0x18]
add eax, 2
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x11c]
mov eax, 0xb5c3abb6
mov ecx, 0x63d86d9b
cmova eax, ecx
mov ebx, dword [esp + 0x18]
jmp 0x10051eac
movsd xmm0, qword [esp + 0xb0]
lea eax, [esp + 0x108]
movsd qword [eax], xmm0
jmp 0x100526e3
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x118]
cmp byte [ecx + eax], 0x30
mov eax, 0x63d86d9b
mov ecx, 0x824177
cmove eax, ecx
mov ebx, dword [esp + 0x18]
jmp 0x10051eac
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x110]
mov eax, dword [eax + 0x14]
mov ecx, 0x1c0
and eax, ecx
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
cmp eax, 0x100
mov eax, 0x3a36fb8b
mov edx, 0x38734051
cmovne eax, edx
cmp ecx, 0x40
mov ecx, 0x3a36fb8b
cmove eax, ecx
jmp 0x10051eac
mov esi, dword [esp + 0xb0]
lea edi, [esp + 0x108]
mov dword [esp + 0x30], ebx
mov ebp, dword [esp + 0xb4]
mov dword [edi + 4], ebp
mov dword [edi], esi
lea ecx, [esp + 0xd0]
call fcn.10007c1e
mov dword [esp + 0xac], ebp
mov ebx, dword [esp + 0x100]
mov dword [esp + 0xa8], esi
lea esi, [esp + 0xb0]
mov ecx, dword [esp + 0x24]
movsd xmm0, qword [esp + 0xa8]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], eax
mov dword [esp + 4], edi
mov dword [esp], ebx
mov ebx, dword [esp + 0x30]
call fcn.10052b92
xor ebp, ebp
mov eax, 0x68913858
jmp 0x10051eac
mov eax, dword [esp + 0x110]
mov eax, dword [eax + 0x20]
sub eax, dword [esp + 0x34]
mov dword [esp + 0x50], eax
mov eax, 0x18d9e536
jmp 0x10051eac
cmp eax, 0x68913858
jne 0x10051eac
lea esi, [esp + 0x108]
mov dword [esp + 0x20], ebp
mov edi, dword [esp + 0x34]
sub edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x110]
mov ebp, dword [esp + 0x24]
lea ecx, [esp + 0xd0]
call fcn.10007c1e
add eax, ebp
movsd xmm0, qword [esi]
movsd qword [esp + 0x90], xmm0
movsd xmm0, qword [esp + 0x90]
movsd qword [esp + 8], xmm0
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], eax
lea eax, [esp + 0xb0]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.10052b92
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
mov dword [esi + 4], ecx
mov dword [esi], eax
xor edx, edx
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x20], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
movsd xmm0, qword [esp + 0x88]
movsd qword [esp + 8], xmm0
mov eax, dword [esp + 0x20]
mov dword [esp + 0x14], eax
movsx eax, byte [esp + 0x114]
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x104]
mov dword [esp + 4], edi
mov eax, dword [esp + 0x100]
mov dword [esp], eax
call fcn.10052b28
lea ecx, [esp + 0xb8]
call fcn.100087f0
mov eax, dword [esp + 0x68]
lea ecx, [esp + 0xd0]
call fcn.100087f0
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xe8]
xor ecx, esp
call fcn.100879aa
mov eax, edi
add esp, 0xec
pop esi
pop edi
pop ebx
pop ebp
ret