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

Disassembly:
sub esp, 0xb4
push ebx
mov ebx, dword [esp + 0xdc]
push ebp
push esi
push edi
movups xmm0, xmmword [ebx + 4]
push 3
movups xmm1, xmmword [ebx + 0x24]
movups xmmword [esp + 0x6c], xmm0
movups xmm0, xmmword [ebx + 0x14]
psrldq xmm1, 8
movups xmmword [esp + 0x7c], xmm0
movups xmm0, xmmword [ebx + 0x80]
movd eax, xmm1
movups xmmword [esp + 0x34], xmm0
movups xmm0, xmmword [ebx + 0x90]
push eax
mov dword [esp + 0x28], eax
movups xmmword [esp + 0x48], xmm0
movq xmm0, qword [ebx + 0xa0]
movq qword [esp + 0x58], xmm0
call fcn.1045a260
add esp, 8
mov ecx, eax
cmp dword [ebx + 0x118], 0
mov dword [esp + 0x58], ecx
jne 0x1045d14d
cmp dword [ebx + 0x12c], 0
je 0x1045d14d
mov eax, dword [esp + 0xdc]
xor edi, edi
mov ebx, dword [esp + 0xd8]
add eax, 0x6c
mov dword [esp + 0x10], eax
mov esi, eax
nop
mov eax, dword [esi]
test eax, eax
jne 0x1045cc0a
push ecx
call fcn.10080bb0
add esp, 4
mov dword [esi], eax
test eax, eax
jne 0x1045cc0a
push str.Failed_to_allocate_PC_TREE
push 2
push dword [ebx + 0x1ba4]
call fcn.1006e850
add esp, 0xc
mov eax, dword [esi]
add esi, 4
mov ecx, dword [esp + 0x58]
mov dword [eax + 0x7c], edi
inc edi
cmp edi, 4
jl 0x1045cbe0
mov ebx, dword [esp + 0xe8]
xorps xmm0, xmm0
mov ecx, dword [esp + 0xd8]
movlpd qword [esp + 0x38], xmm0
movlpd qword [esp + 0x48], xmm0
mov eax, dword [ebx + 0xb8]
mov byte [esp + 0x50], 1
mov dword [esp + 0x34], 0
mov edx, dword [eax + 0xc]
mov eax, edx
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], edx
imul dword [ecx + 0x31cc]
mov edi, eax
mov esi, edx
mov edx, dword [esp + 0xec]
lea eax, [ebx + 0x108]
add edi, 0x100
mov dword [esp + 0x28], eax
lea eax, [ebx + 0x38]
adc esi, 0
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0xe0]
xor ebp, ebp
shrd edi, esi, 9
sar esi, 9
add eax, 8
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], esi
mov dword [esp + 0x1c], eax
cmp esi, dword [edx + 0x14]
jg 0x1045cf9d
jl 0x1045ccc7
cmp edi, dword [edx + 0x10]
jae 0x1045cf9d
mov ecx, dword [esp + 0xc8]
mov eax, ebp
sar eax, 1
imul eax, dword [esp + 0x68]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x64], eax
cmp eax, dword [ecx + 0x3add4]
jge 0x1045cf7f
mov ebx, dword [esp + 0xe8]
mov eax, ebp
and eax, 1
imul eax, dword [esp + 0x68]
add eax, dword [esp + 0x70]
mov dword [esp + 0x60], eax
cmp eax, dword [ecx + 0x3add8]
jge 0x1045cf7f
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [eax + 0x7c], ebp
lea eax, [esp + 0x9c]
push eax
lea eax, [esp + 0x34]
push eax
mov eax, dword [esp + 0xe0]
push edx
push dword [eax + 0x31cc]
call fcn.10456260
mov eax, dword [esp + 0xd8]
add esp, 0x10
mov dword [esp + 0x5c], 0
mov al, byte [eax + 0x3abf0]
test al, al
je 0x1045cd59
cmp al, 2
jne 0x1045cd73
cmp dword [esp + 0x20], 0xc
jg 0x1045cd73
mov ecx, dword [ebx]
mov edx, dword [ecx]
mov dword [esp + 0x5c], edx
lea eax, [edx*4 + 1]
add eax, ebp
mov dword [ecx], eax
cmp dword [esp + 0xe0], 0
jne 0x1045cd81
xor ecx, ecx
jmp 0x1045cd87
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx]
mov eax, dword [esp + 0x2c]
lea edx, [ebx + 0x58]
push eax
push dword [esp + 0xf4]
movups xmm0, xmmword [esp + 0xa4]
add eax, 0x90
push eax
mov eax, dword [esp + 0x1c]
push ecx
push dword [eax]
sub esp, 0x28
mov eax, esp
push edx
push dword [esp + 0x98]
movups xmmword [eax], xmm0
push dword [esp + 0xa4]
movups xmm0, xmmword [esp + 0xf4]
push dword [esp + 0xac]
movups xmmword [eax + 0x10], xmm0
push dword [esp + 0x120]
movq xmm0, qword [esp + 0x10c]
push dword [esp + 0x120]
movq qword [eax + 0x20], xmm0
push dword [esp + 0x120]
push dword [esp + 0x120]
call fcn.10454f60
add esp, 0x5c
test al, al
je 0x1045d059
mov eax, dword [esp + 0xc8]
mov al, byte [eax + 0x3abf0]
test al, al
je 0x1045ce24
cmp al, 2
jne 0x1045ce33
cmp dword [esp + 0x20], 0xc
jg 0x1045ce33
mov eax, dword [ebx]
mov ecx, dword [esp + 0x5c]
mov dword [eax], ecx
mov edx, dword [esp + 0x14]
add edx, dword [ebx + 0x58]
mov ecx, dword [esp + 0x1c]
add ecx, dword [ebx + 0x60]
mov eax, dword [ebx + 0x64]
adc eax, dword [esp + 0x18]
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], eax
cmp edx, 0x7fffffff
jge 0x1045cef2
cmp eax, 0x7fffffff
jg 0x1045cef2
jl 0x1045ce7e
cmp ecx, 0xffffffff
jae 0x1045cef2
cmp esi, 0x7fffffff
jg 0x1045cef2
jl 0x1045ce8d
cmp edi, 0xffffffff
jae 0x1045cef2
mov esi, dword [esp + 0xd8]
mov ebx, eax
shld ebx, ecx, 7
mov eax, edx
shl ecx, 7
test edx, edx
js 0x1045ceca
imul dword [esi + 0x31cc]
mov edi, eax
mov esi, edx
add edi, 0x100
adc esi, 0
shrd edi, esi, 9
sar esi, 9
add edi, ecx
adc esi, ebx
mov ebx, dword [esp + 0xe8]
jmp 0x1045cf2e
neg eax
mov edi, ecx
imul dword [esi + 0x31cc]
mov esi, ebx
mov ebx, dword [esp + 0xe8]
add eax, 0x100
adc edx, 0
shrd eax, edx, 9
sar edx, 9
sub edi, eax
sbb esi, edx
jmp 0x1045cf2e
mov eax, closesocket
mov byte [esp + 0x50], 0
or ecx, 0xffffffff
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
or edi, 0xffffffff
mov dword [esp + 0x38], ecx
mov esi, eax
mov ecx, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], edi
cmp ebp, 1
jg 0x1045cf78
cmp dword [esp + 0x20], 3
jle 0x1045cf4d
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
cmp byte [eax], 0
jne 0x1045cf78
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov eax, dword [eax + 8]
cmp byte [eax + 0x86], 0
jne 0x1045cf78
cmp byte [eax + 0x87], 0
jne 0x1045cf78
cmp byte [eax + 6], 0xd
je 0x1045cf78
mov edx, dword [esp + 0x28]
mov dword [edx], 1
mov edx, dword [esp + 0xec]
add dword [esp + 0x24], 4
inc ebp
add dword [esp + 0x10], 4
add dword [esp + 0x28], 4
add dword [esp + 0x2c], 8
cmp ebp, 4
jl 0x1045ccb3
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0xf4]
mov dword [eax], edi
mov dword [eax + 4], esi
cmp ebp, 4
jne 0x1045d095
mov eax, dword [esp + 0xec]
mov ecx, dword [eax + 0x10]
cmp esi, dword [eax + 0x14]
jg 0x1045d095
jl 0x1045cfd3
cmp edi, ecx
jae 0x1045d095
mov ebp, dword [esp + 0x1c]
mov eax, edx
mov edx, dword [esp + 0xd8]
mov esi, dword [esp + 0x18]
imul dword [edx + 0x31cc]
add eax, 0x100
adc edx, 0
shld esi, ebp, 7
shrd eax, edx, 9
shl ebp, 7
sar edx, 9
add eax, ebp
mov ebp, dword [esp + 0xec]
adc edx, esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
cmp edx, dword [ebp + 0x14]
jg 0x1045d0f9
jl 0x1045d026
cmp eax, ecx
jae 0x1045d0f9
movups xmm0, xmmword [esp + 0x30]
mov eax, dword [esp + 0xdc]
movups xmmword [ebp], xmm0
movups xmm0, xmmword [esp + 0x40]
movups xmmword [ebp + 0x10], xmm0
movq xmm0, qword [esp + 0x50]
movq qword [ebp + 0x20], xmm0
mov byte [ebx + 0x144], 1
mov byte [eax], 3
jmp 0x1045d0f9
mov edx, closesocket
mov byte [esp + 0x50], 0
or eax, 0xffffffff
mov dword [esp + 0x30], edx
mov ecx, edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x38], eax
or edi, eax
mov dword [esp + 0x18], ecx
mov esi, ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], 0
jmp 0x1045cfa1
mov ecx, dword [esp + 0xc8]
mov eax, dword [ecx + 0x5cd50]
test eax, eax
jle 0x1045d100
cmp eax, 2
je 0x1045d0b0
cmp ebp, 2
jg 0x1045d100
mov edx, dword [ebx + 0xc4]
mov eax, dword [ebx + 0xc0]
test edx, edx
jl 0x1045d0cd
jg 0x1045d0c6
test eax, eax
je 0x1045d0cd
mov ecx, 1
jmp 0x1045d0cf
xor ecx, ecx
cmp edx, esi
jg 0x1045d0e0
jl 0x1045d0d9
cmp eax, edi
jae 0x1045d0e0
mov eax, 1
jmp 0x1045d0e2
xor eax, eax
test ecx, ecx
je 0x1045d0ee
test eax, eax
je 0x1045d0ee
xor eax, eax
jmp 0x1045d0f3
mov eax, 1
and dword [ebx + 0x128], eax
mov ecx, dword [esp + 0xc8]
mov ebx, dword [esp + 0xd8]
mov edx, dword [esp + 0x20]
cmp edx, dword [ebx + 0x141fc]
jle 0x1045d11e
mov eax, dword [ecx + 0x3e7a8]
cmp edx, dword [eax + 0x1c]
jne 0x1045d14d
mov eax, dword [ecx + 0x3e7a8]
xor ecx, ecx
cmp byte [eax + 0x4d], cl
sete cl
lea ecx, [ecx*2 + 1]
push ecx
push edx
push dword [esp + 0x78]
push dword [esp + 0x78]
push dword [esp + 0xf4]
push ebx
call fcn.1009f610
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb4
ret