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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x120
mov dword [esp + 0x70], ecx
mov ecx, dword [edx + 0x10]
call 0x5d1f9b
pop eax
mov dword [esp + 0x9c], eax
cmp ecx, dword [ebp + 8]
mov dword [esp + 0x7c], ecx
jle 0x5d2bc4
mov ecx, dword [edx + 8]
xor eax, eax
mov ebx, edx
mov esi, dword [ebp + 0x1c]
mov dword [esp], ebx
cmp byte [ecx + 0x29], 8
mov edx, dword [ecx + 0x24]
sete al
add edx, dword [ecx + 0x20]
shl eax, 3
add eax, dword [ecx + 0x10]
mov ecx, dword [ebx]
sub eax, edx
lea ecx, [eax + ecx + 4]
mov eax, 0x13
movd xmm0, eax
lea eax, [esi + 1]
mov dword [esp + 0xe8], eax
movdqa xmmword [esp + 0x100], xmm0
jmp 0x5d20a4
mov esi, dword [esp + 0x18]
mov eax, dword [eax]
lea ecx, [edx + edx*2]
mov edi, dword [esp + 0x6c]
mov dword [eax + ecx*8], esi
mov esi, dword [esp + 0xb0]
mov dword [eax + ecx*8 + 4], edi
mov dword [eax + ecx*8 + 0xc], esi
mov esi, dword [esp + 0xb4]
mov dword [eax + ecx*8 + 8], esi
mov esi, dword [ebp + 0x1c]
mov edi, dword [esp + 0x1c]
inc edx
mov dword [eax + ecx*8 + 0x10], esi
mov dword [eax + ecx*8 + 0x14], edi
mov ecx, dword [ebp + 0x18]
mov dword [ecx + 8], edx
mov eax, dword [ebp + 0x14]
lea ecx, [esp + 0xa0]
mov edx, ebx
push dword [esp + 0xe8]
push dword [ebp + 0x18]
push eax
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [esp + 0x90]
call fcn.005d1f80
add esp, 0x18
mov al, byte [esp + 0xa0]
cmp al, 0x47
jne 0x5d2bee
mov ecx, dword [ebx + 8]
xor eax, eax
cmp byte [ecx + 0x29], 8
mov edx, dword [ecx + 0x24]
sete al
add edx, dword [ecx + 0x20]
shl eax, 3
add eax, dword [ecx + 0x10]
mov ecx, dword [ebx]
sub eax, edx
mov edx, dword [ebx + 0x10]
lea ecx, [eax + ecx + 4]
cmp edx, dword [ebp + 8]
mov dword [esp + 0x7c], edx
jle 0x5d2bc4
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x20]
mov edx, ebx
call fcn.005d6790
cmp dword [esp + 0x20], 1
je 0x5d2bcd
mov esi, dword [esp + 0x24]
test esi, esi
je 0x5d2074
movzx eax, word [esi + 0x60]
cmp ax, 0x1d
je 0x5d2100
cmp ax, 0x2e
jne 0x5d21b0
cmp dword [esi + 8], 1
jne 0x5d2615
mov ebx, dword [esi + 0x14]
mov esi, dword [esi + 0xc]
test ebx, ebx
jne 0x5d262c
jmp 0x5d2700
cmp dword [esi + 8], 1
jne 0x5d275e
mov ecx, dword [esi + 0x14]
mov esi, dword [esi + 0xc]
test ecx, ecx
je 0x5d2775
mov eax, dword [ebp + 0x10]
shl ecx, 4
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x14], 0
mov dword [esp + 4], 0
add ecx, esi
mov dword [esp + 0x1c], ecx
mov eax, dword [eax + 0x18]
mov dword [esp + 0xb8], eax
add eax, 8
mov dword [esp + 0xbc], eax
jmp 0x5d222d
cmp dword [esi + 8], 1
jne 0x5d28b9
mov ebx, dword [esi + 0x14]
mov esi, dword [esi + 0xc]
test ebx, ebx
jne 0x5d28cc
jmp 0x5d291a
add esi, 0x10
cmp esi, dword [esp + 0x1c]
je 0x5d27e7
movzx edi, word [esi + 0xa]
mov eax, dword [ebx + 8]
lea ecx, [esp + 0x20]
mov edx, ebx
push edi
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, dword [esp + 0x24]
je 0x5d298d
mov eax, dword [esp + 0x38]
lea ecx, [eax - 3]
cmp cx, 0x56
ja 0x5d22c0
movzx eax, cx
mov eax, dword [eax*4 + 0x5d2c38]
add eax, dword [esp + 0x9c]
jmp eax
cmp ax, 0x6e
je 0x5d22d4
movzx eax, ax
cmp eax, 0x2007
jne 0x5d2220
lea edi, [esp + 0xf0]
lea edx, [esp + 0x28]
mov ecx, edi
call fcn.005cfdb0
mov edx, dword [esp + 0xbc]
lea ecx, [esp + 0x48]
push edi
push dword [ebp + 0xc]
call fcn.005d1c40
add esp, 8
cmp dword [esp + 0x48], 0
jne 0x5d2220
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x98], eax
mov dword [esp + 4], ecx
jmp 0x5d2220
mov ebx, dword [esi + 0xc]
cmp ebx, 6
jae 0x5d2c20
add esi, 0x10
test ebx, ebx
je 0x5d2700
shl ebx, 4
add ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [esp]
movzx edi, word [esi + 0xa]
lea ecx, [esp + 0x20]
mov eax, dword [edx + 8]
push edi
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, dword [esp + 0x24]
je 0x5d2730
add esi, 0x10
cmp esi, ebx
jne 0x5d2640
jmp 0x5d2700
mov esi, dword [esp + 0x24]
test esi, esi
je 0x5d2700
cmp dword [esi + 8], 1
jne 0x5d26a0
mov ebx, dword [esi + 0x14]
mov esi, dword [esi + 0xc]
test ebx, ebx
jne 0x5d26b3
jmp 0x5d2700
mov ebx, dword [esi + 0xc]
cmp ebx, 6
jae 0x5d2c20
add esi, 0x10
test ebx, ebx
je 0x5d2700
shl ebx, 4
add ebx, esi
nop dword [eax + eax]
mov edx, dword [esp]
movzx edi, word [esi + 0xa]
lea ecx, [esp + 0x20]
mov eax, dword [edx + 8]
push edi
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, dword [esp + 0x24]
je 0x5d2730
add esi, 0x10
cmp esi, ebx
jne 0x5d26c0
nop word cs:[eax + eax]
mov ebx, dword [esp]
mov eax, dword [esp + 0x7c]
cmp dword [ebx + 0x10], eax
jle 0x5d2074
lea ecx, [esp + 0x20]
mov edx, ebx
call fcn.005d6790
cmp dword [esp + 0x20], 1
jne 0x5d2680
lea ecx, [esp + 0x28]
mov al, byte [esp + 0x28]
jmp 0x5d273b
lea ecx, [esp + 0x28]
mov al, byte [esp + 0x28]
mov ebx, dword [esp]
movq xmm0, qword [ecx + 1]
movq xmm1, qword [ecx + 8]
movq qword [esp + 0x48], xmm0
movq qword [esp + 0x4f], xmm1
cmp al, 0x47
je 0x5d2074
jmp 0x5d2c02
mov ecx, dword [esi + 0xc]
cmp ecx, 6
jae 0x5d2c22
add esi, 0x10
test ecx, ecx
jne 0x5d2118
mov dword [esp + 4], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov esi, dword [ebp + 0x14]
mov eax, dword [esi + 8]
cmp eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
jne 0x5d2804
mov edx, dword [esp + 0x1c]
mov ecx, esi
call fcn.005d6980
mov eax, dword [esi + 8]
mov edx, dword [esi]
mov edi, dword [esp + 0x90]
mov ecx, eax
inc eax
shl ecx, 5
cmp dword [esp + 0x14], 1
mov dword [edx + ecx + 4], edi
mov edi, dword [esp + 0x94]
mov dword [edx + ecx], edi
mov edi, dword [esp + 0xc0]
mov dword [edx + ecx + 8], edi
mov edi, dword [esp + 4]
mov dword [edx + ecx + 0xc], edi
mov edi, dword [esp + 0x98]
mov dword [edx + ecx + 0x10], edi
mov edi, dword [esp + 8]
mov dword [edx + ecx + 0x14], edi
mov edi, dword [esp + 0xc]
mov dword [edx + ecx + 0x18], edi
mov dword [esi + 8], eax
jne 0x5d2922
mov eax, dword [ebp + 0x10]
xor ebx, ebx
mov edi, dword [esp + 0xec]
mov ecx, dword [eax + 0x18]
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x28]
mov dword [esp + 0xc0], eax
shr eax, 0x10
cmp ax, 5
setae bl
mov esi, dword [ecx + ebx*8 + 0x64]
mov edx, dword [ecx + ebx*8 + 0x60]
sub esi, edi
jae 0x5d29b1
movd xmm1, dword [esp + 0xc0]
movdqa xmm0, xmmword [esp + 0x100]
mov ebx, dword [esp]
movd xmm2, edx
punpckldq xmm0, xmm1
punpcklqdq xmm0, xmm2
jmp 0x5d2a2a
mov ebx, dword [esi + 0xc]
cmp ebx, 6
jae 0x5d2c20
add esi, 0x10
test ebx, ebx
je 0x5d291a
shl ebx, 4
add ebx, esi
nop word cs:[eax + eax]
nop dword [eax + eax]
mov edx, dword [esp]
movzx edi, word [esi + 0xa]
lea ecx, [esp + 0x20]
mov eax, dword [edx + 8]
push edi
push dword [esi + 8]
push dword [esi + 4]
push dword [esi]
push dword [eax + 0x28]
call fcn.005ce640
add esp, 0x14
mov eax, dword [esp + 0x20]
xor eax, 1
or eax, dword [esp + 0x24]
je 0x5d2bcd
add esi, 0x10
cmp esi, ebx
jne 0x5d28e0
mov ebx, dword [esp]
jmp 0x5d2074
mov ecx, dword [esp + 0x78]
mov eax, esi
xor ecx, 1
or ecx, dword [esp + 0x74]
jne 0x5d203c
mov ecx, dword [esp + 0x8c]
xor ecx, 1
or ecx, dword [esp + 0x88]
jne 0x5d2adf
mov eax, dword [esp + 0xb4]
cmp dword [esp + 0x18], eax
mov eax, dword [esp + 0x6c]
sbb eax, dword [esp + 0xb0]
mov eax, dword [ebp + 0x14]
jae 0x5d203c
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 8]
cmp edx, dword [eax + 4]
jne 0x5d1ff9
mov ecx, dword [ebp + 0x18]
call fcn.005d0630
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 8]
jmp 0x5d1ff9
lea eax, [esp + 0x28]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0xa8], xmm1
movq qword [esp + 0xa0], xmm0
jmp 0x5d2065
cmp ax, 5
mov eax, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [eax + 0x34]
mov dword [esp + 0x24], ebx
mov ebx, dword [eax + 0x30]
mov eax, dword [eax + 0x10c]
mov dword [esp + 0x20], ebx
mov ebx, 0
setae bl
add edx, edi
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], edx
mov edx, dword [esp + 4]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0x48]
lea edx, [esp + 0x20]
mov dword [esp + 0x40], eax
call fcn.005d06c0
mov eax, dword [esp + 0x48]
mov ebx, dword [esp]
xor eax, 1
or eax, dword [esp + 0x4c]
jne 0x5d2a79
movdqu xmm0, xmmword [esp + 0x50]
movdqu xmmword [esp + 0xa0], xmm0
jmp 0x5d2065
mov eax, dword [ecx]
mov esi, dword [ebp + 0x1c]
mov edi, ecx
lea ecx, [edx + edx*2]
inc edx
movdqu xmmword [eax + ecx*8], xmm1
mov dword [eax + ecx*8 + 0x10], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*8 + 0x14], esi
mov dword [edi + 8], edx
lea ecx, [esp + 0x48]
lea edx, [esp + 0x20]
call fcn.005d06c0
mov eax, dword [esp + 0x48]
xor eax, 1
or eax, dword [esp + 0x4c]
je 0x5d2a24
cmp dword [esp + 0x50], 1
jne 0x5d2039
movdqu xmm1, xmmword [esp + 0x58]
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd esi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, esi
sbb eax, edx
jae 0x5d2a5f
mov ecx, dword [ebp + 0x18]
mov edx, dword [ecx + 8]
cmp edx, dword [ecx + 4]
jne 0x5d2a40
mov ecx, dword [ebp + 0x18]
movdqa xmmword [esp + 0xc0], xmm1
call fcn.005d0630
mov ecx, dword [ebp + 0x18]
movdqa xmm1, xmmword [esp + 0xc0]
mov edx, dword [ecx + 8]
jmp 0x5d2a40
mov ecx, dword [esp + 0x84]
xor ecx, 1
or ecx, dword [esp + 0x80]
jne 0x5d203c
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x6c]
mov edx, eax
mov esi, ecx
add edx, dword [esp + 0xe0]
adc esi, dword [esp + 0xdc]
cmp eax, edx
mov eax, ecx
sbb eax, esi
mov eax, dword [ebp + 0x14]
jae 0x5d203c
mov eax, dword [ebp + 0x18]
mov dword [esp + 0xc0], edx
mov edx, dword [eax + 8]
cmp edx, dword [eax + 4]
jne 0x5d2b3f
mov ecx, dword [ebp + 0x18]
call fcn.005d0630
mov eax, dword [ebp + 0x18]
mov edx, dword [eax + 8]
mov eax, dword [eax]
mov edi, dword [esp + 0x6c]
lea ecx, [edx + edx*2]
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x18]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 0xc], esi
mov esi, dword [esp + 0xc0]
jmp 0x5d201f
mov eax, dword [esp + 0x70]
mov byte [eax], 0x47
jmp 0x5d2be6
movq xmm0, qword [esp + 0x28]
movq xmm1, qword [esp + 0x30]
mov eax, dword [esp + 0x70]
movq qword [eax + 8], xmm1
movq qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movsd xmm0, qword [esp + 0xa1]
movsd xmm1, qword [esp + 0xa8]
jmp 0x5d2c0e
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x4f]
mov ecx, dword [esp + 0x70]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
jmp 0x5d2be6
mov ecx, ebx
mov edx, 5
push 0x61fd9c
call fcn.0045ab50
add esp, 4
ud2