Function at 0x43f626
Capabilities:
Check for software breakpoints
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x4a8
mov esi, edx
mov edx, dword [edx + 0x78]
mov ebx, ecx
lea edi, [esp + 0x88]
mov ecx, edi
push dword [esi + 0x80]
call fcn.0043ac24
pop eax
mov eax, dword [edi]
cmp eax, 3
jne 0x43f685
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov edi, dword [esp + 0x8c]
mov ecx, esi
movsd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], eax
call fcn.004361fb
jmp 0x43f7cd
mov dword [esp + 4], eax
mov eax, dword [esp + 0x8c]
movq xmm1, qword [esp + 0xa4]
movsd xmm2, qword [esp + 0x9d]
movsd xmm0, qword [esp + 0x90]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esi + 0x8c]
mov cl, byte [esp + 0x9c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x98]
movq qword [esp + 0x16f], xmm1
movsd qword [esp + 0x168], xmm2
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 0x238], xmm0
test ebx, ebx
mov byte [esp], cl
movsd xmm0, qword [esp + 0x16b]
mov dword [esp + 0x28], eax
mov dword [esp + 0x240], eax
mov eax, dword [esp + 0x173]
movsd qword [esp + 0x88], xmm0
mov dword [esp + 0x90], eax
je 0x43f76f
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x88]
cmp eax, 8
push 0x3f
pop edi
push 0x3f
pop ecx
jae 0x43f73b
push eax
call fcn.0043c7e4
jmp 0x43f741
push eax
call fcn.0042cdb0
pop ecx
cmp eax, 1
push 0x26
pop eax
cmove edi, eax
lea ecx, [esp + 0x88]
mov edx, edi
call fcn.0043cabe
mov edx, dword [esi + 0x84]
lea ecx, [esp + 0x88]
add ebx, edx
push ebx
call fcn.0045245d
pop eax
movsd xmm0, qword [esp + 0x88]
mov eax, dword [esp + 0x90]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
mov edi, dword [esi + 8]
movsd qword [esp + 0x78], xmm0
mov dword [esp + 0x80], eax
movsd xmm0, qword [esi + 0xc]
mov eax, dword [esi + 0x14]
mov ebx, ecx
xor ebx, 2
or ebx, edx
movsd qword [esp + 0x38], xmm0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x240]
movsd xmm0, qword [esp + 0x238]
mov dword [esp + 0x50], eax
movsd qword [esp + 0x48], xmm0
jne 0x43f801
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [ebx + 4], edi
mov dword [esp + 0x70], eax
movsd qword [esp + 0x68], xmm0
movq xmm0, qword [esp + 0x68]
mov eax, dword [esp + 0x70]
movq qword [ebx + 8], xmm0
mov dword [ebx + 0x10], eax
and dword [ebx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [esi + 0xc]
add esi, 0x18
lea ebx, [esp + 0x3e8]
mov dword [esp + 0x10], eax
push 0x88
push esi
push ebx
mov dword [esp + 0x18], ecx
mov esi, edx
call fcn.004ba8e0
add esp, 0xc
mov eax, dword [esp + 4]
movsd xmm0, qword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edx, 0x4e03a8
mov dword [ebx + 0x88], eax
mov eax, dword [esp + 8]
mov dword [ebx + 0x8c], eax
mov eax, dword [esp + 0x50]
movsd qword [ebx + 0x90], xmm0
movsd xmm0, qword [esp + 0x78]
mov dword [ebx + 0x98], eax
mov eax, dword [esp + 0x80]
movsd qword [ebx + 0x9c], xmm0
movsd xmm0, qword [ecx]
mov dword [ebx + 0xa4], eax
mov al, byte [esp]
mov dword [ebx + 0xa8], 4
and dword [ebx + 0xac], 0
and dword [ebx + 0xb0], 0
mov byte [ebx + 0xb4], al
mov eax, dword [ecx + 8]
mov dword [ebx - 0x10], edi
lea ecx, [esp + 0x3f0]
movsd qword [ebx - 0xc], xmm0
mov dword [ebx - 4], eax
mov eax, dword [esp + 0xc]
mov dword [ebx - 0x14], esi
mov dword [ebx - 0x18], eax
call fcn.0043ee44
cmp byte [esp], 0
mov byte [esp + 4], al
lea eax, [esp + 0x3d0]
lea esi, [esp + 0x168]
je 0x43f94c
push 0xd0
push eax
push esi
call fcn.004ba8e0
add esp, 0xc
lea edi, [esp + 0x88]
mov edx, esi
mov ecx, edi
call fcn.004402b5
lea esi, [esp + 0x238]
mov edx, edi
mov ecx, esi
call fcn.0043ae0a
mov edx, dword [esi]
mov ebx, dword [esp + 0x1c]
cmp edx, 2
je 0x43f986
lea esi, [esp + 0x24c]
lea eax, [esp + 0x2d4]
movsd xmm0, qword [esi - 0x10]
movsd xmm1, qword [esi - 8]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
push 0x1d
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 0x14], edx
lea edx, [esp + 0x2c0]
jmp 0x43f9e8
push 0xd0
push eax
push esi
call fcn.004ba8e0
add esp, 0xc
lea edi, [esp + 0x88]
mov edx, esi
mov ecx, edi
call fcn.004402b5
lea esi, [esp + 0x238]
mov edx, edi
mov ecx, esi
call fcn.0043b0c3
mov edx, dword [esi]
mov ebx, dword [esp + 0x1c]
cmp edx, 2
jne 0x43f9b3
movq xmm1, qword [esp + 0x244]
movq xmm0, qword [esp + 0x23c]
movq qword [ebx + 0xc], xmm1
movq qword [esp + 0x28], xmm1
movq qword [esp + 0x20], xmm0
movq qword [ebx + 4], xmm0
jmp 0x43f7f6
lea esi, [esp + 0x24c]
lea eax, [esp + 0x35c]
movsd xmm0, qword [esi - 0x10]
movsd xmm1, qword [esi - 8]
movsd qword [esp + 0x28], xmm1
movsd qword [esp + 0x20], xmm0
push 0x1d
pop ecx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [eax - 0x14], edx
lea edx, [esp + 0x348]
movq xmm0, qword [esp + 0x20]
movq xmm1, qword [esp + 0x28]
movq qword [eax - 0x10], xmm0
movq qword [eax - 8], xmm1
mov dword [esp + 0x38], 1
and dword [esp + 0x3c], 0
and dword [esp + 0x40], 0
cmp byte [esp + 4], 0
lea ecx, [esp + 0x88]
jne 0x440211
mov eax, dword [edx + 0x80]
cmp eax, 0xcc
je 0x440211
cmp eax, 0x130
je 0x440211
lea eax, [edx + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 0x58], eax
lea eax, [edx + 8]
mov dword [esp + 0x10], eax
lea eax, [edx + 0x48]
mov dword [esp + 0x60], eax
mov dword [esp], eax
mov dword [esp + 0xc], eax
movzx eax, byte [edx + 0x68]
test eax, eax
je 0x43face
cmp eax, 1
jne 0x43fafb
mov ecx, dword [edx + 0x6c]
test ecx, ecx
je 0x440209
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
dec ecx
mov esi, ecx
mov dword [eax + 0x6c], ecx
lea ecx, [esp + 0x88]
call fcn.0043d2f5
mov al, byte [esp + 0x88]
cmp al, 5
je 0x4401f4
mov ecx, dword [esp]
mov cl, byte [esp + 0x89]
cmp al, 4
jne 0x43fbf0
mov eax, 0x4000
mov dword [esp], ecx
mov dh, 0x2c
cmp esi, eax
cmovae esi, eax
inc esi
mov dword [esp + 4], esi
jmp 0x43fd46
mov edx, dword [esp + 0x10]
call fcn.0043d2f5
mov al, byte [esp + 0x88]
mov dh, 0x2d
cmp al, 5
jne 0x43fbc9
mov ecx, dword [esp]
mov eax, ecx
mov dl, ch
lea ecx, [esp + 0x8c]
jmp 0x43fcf8
mov esi, dword [edx]
mov ebx, dword [edx + 4]
cmp byte [edx + 0x69], 0
mov edi, dword [edx + 0x6c]
jne 0x43fb11
test edi, edi
je 0x440209
test edi, edi
je 0x43fc15
mov eax, dword [esp + 8]
mov edx, dword [esp + 0x10]
dec edi
lea ecx, [esp + 0x238]
mov dword [eax + 0x6c], edi
call fcn.0043d2f5
mov al, byte [esp + 0x238]
lea edx, [esp + 0x168]
cmp al, 5
je 0x4401fd
mov ebx, dword [esp]
mov bl, byte [esp + 0x239]
cmp al, 4
lea ecx, [esp + 0x8c]
jne 0x43fcbd
test edi, edi
mov dword [esp], ebx
jne 0x43fbb3
mov ecx, edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x88]
mov byte [esp + 0x88], 0x1b
push eax
push 2
push 1
call fcn.0043cd6e
add esp, 0xc
mov dh, byte [esp + 0x168]
cmp dh, 0x2c
jne 0x43fd07
mov ecx, dword [esp + 0x16c]
mov edx, dword [esp + 0x170]
call fcn.004a8f7f
lea ecx, [esp + 0x8c]
mov eax, 0x4000
mov dh, 0x2c
cmp edi, eax
cmovae edi, eax
inc edi
mov dword [esp + 4], edi
jmp 0x43fd4d
mov dl, byte [esp + 0x89]
cmp al, 4
lea ecx, [esp + 0x8c]
jne 0x43fcdf
mov eax, edx
mov edx, dword [esp]
xor esi, esi
inc esi
mov dl, dh
mov dh, 0x2c
jmp 0x43fcf4
movzx edx, word [esp + 0x8a]
mov ch, cl
mov cl, al
mov dword [esp], ecx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x8c]
mov dword [esp + 4], edx
mov dh, 0x19
jmp 0x43fd46
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x88]
mov byte [esp + 0x88], 0x1a
lea ecx, [esp + 0x168]
push eax
push 0x400
push 1
call fcn.0043cd6e
add esp, 0xc
mov dh, byte [esp + 0x168]
cmp dh, 0x2c
jne 0x43fd07
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x174]
mov ecx, dword [esp + 0x16c]
mov eax, dword [esp + 0x170]
mov dword [esp + 0x5c], esi
test ebx, ebx
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ecx
je 0x43fe71
mov edx, ebx
push 0x3b
call fcn.0043d291
pop ecx
cmp eax, 1
jne 0x43fe08
mov esi, edx
test edx, edx
lea edi, [esp + 0x88]
je 0x43fe15
mov ecx, dword [esp + 0x18]
cmp ebx, esi
jbe 0x43fe1d
cmp byte [ecx + esi], 0xbf
jle 0x4402a1
mov ebx, esi
jmp 0x43fe23
movzx edx, word [esp + 0x23a]
mov bh, bl
mov bl, al
mov dword [esp], ebx
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x23c]
mov dword [esp + 4], edx
mov dh, 0x19
jmp 0x43fd4d
movzx esi, word [esp + 0x8a]
mov dh, 0x19
mov dword [esp + 0xc], esi
mov esi, dword [esp + 0x8c]
mov dword [esp + 4], esi
mov ah, dl
mov dword [esp], eax
cmp dh, 0x2d
jne 0x43fd4d
jmp 0x440209
lea ecx, [esp + 0x169]
mov al, byte [ecx + 2]
mov byte [esp + 0x4a], al
movzx eax, word [ecx]
mov ecx, dword [esp + 0x16c]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x170]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, ecx
mov eax, dword [esp + 0x174]
shr ecx, 0x10
mov dword [esp + 0xc], ecx
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x8c]
mov al, byte [esp + 0x4a]
mov byte [esp + 0x88], dh
mov bl, dh
mov edx, dword [esp]
mov byte [ecx - 1], al
movzx eax, word [esp + 0x48]
movzx edi, dh
movzx esi, dl
mov edx, dword [esp + 0x54]
shl edi, 8
mov word [ecx - 3], ax
mov eax, dword [esp + 0xc]
shl eax, 0x10
or edi, eax
mov eax, dword [esp + 4]
or edi, esi
cmp bl, 0x19
mov dword [esp + 0x8c], edi
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
je 0x43fdc5
movzx eax, bl
cmp eax, 0x2c
jne 0x4401b6
mov edx, dword [esp + 4]
lea edi, [esp + 0x38]
mov ecx, edi
call fcn.0045248e
mov ecx, edi
mov edx, esi
call fcn.0045d081
jmp 0x43fdf8
call fcn.0049fd80
cmp al, 0xd
jne 0x4401b6
mov eax, dword [esp + 4]
mov dword [esp + 0x168], edi
mov dword [esp + 0x16c], eax
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
lea eax, [esp + 0x168]
push eax
call fcn.00405b29
pop eax
mov edx, dword [esp + 8]
lea ecx, [esp + 0x88]
jmp 0x43fa5e
mov ecx, dword [esp + 0x18]
lea edi, [esp + 0x88]
jmp 0x43fe23
mov ecx, dword [esp + 0x18]
xor ebx, ebx
jmp 0x43fe23
jne 0x4402a1
mov edx, ebx
call fcn.004525c7
mov ebx, edx
mov ecx, edi
mov edx, eax
push 0x10
push ebx
call fcn.0042e540
pop eax
pop ecx
cmp byte [esp + 0x88], 0
je 0x43fe4e
mov byte [esp + 0x14], 0x1a
jmp 0x440199
mov edi, dword [esp + 0x8c]
mov ecx, dword [esp + 0x18]
test edi, edi
je 0x43fe71
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x34]
add dword [eax], edi
call fcn.004a8f7f
jmp 0x43fb19
mov eax, dword [esp + 0x5c]
mov esi, dword [esp + 0x14]
lea ebx, [esp + 0x168]
mov edx, dword [esp + 0x10]
lea edi, [esp + 0x88]
mov byte [esp + 0x88], 0x1d
mov ecx, ebx
push edi
mov dword [esp + 0x18], esi
push esi
push eax
call fcn.0043cd6e
add esp, 0xc
mov al, byte [esp + 0x168]
cmp al, 0x2c
jne 0x43ff75
mov edx, dword [esp + 0x170]
mov ecx, edi
mov eax, dword [esp + 0x16c]
mov edi, dword [esp + 0x174]
mov dword [esp + 0x16c], edx
mov edx, ebx
mov dword [esp + 0x168], eax
mov dword [esp + 0x170], edi
call fcn.0043ced9
cmp dword [esp + 0x88], 0
je 0x43ffbd
mov esi, dword [esp + 0x14]
movsd xmm0, qword [esp + 0x88]
mov edx, dword [esp + 0x60]
mov ecx, ebx
mov eax, esi
movsd qword [esp + 0x20], xmm0
sub eax, edi
mov edi, dword [esp + 0x5c]
add eax, 0xfffffffe
test edi, edi
cmovne esi, eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x8c]
movq xmm0, qword [eax + 8]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x240], eax
lea eax, [esp + 0x238]
movq qword [esp + 0x238], xmm0
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0043d03f
pop eax
pop ecx
mov ecx, dword [esp + 0x168]
mov edx, dword [esp + 0x16c]
call fcn.0049e649
mov eax, edi
jmp 0x43fe80
lea ecx, [esp + 0x169]
mov byte [esp + 0x14], al
mov al, byte [ecx + 2]
mov byte [esp + 0x4a], al
movzx eax, word [ecx]
mov ecx, dword [esp + 0x16c]
mov word [esp + 0x48], ax
mov eax, dword [esp + 0x170]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x174]
mov dword [esp + 0x54], eax
mov eax, ecx
shr ecx, 0x10
mov dword [esp + 0xc], ecx
jmp 0x440199
mov edi, dword [esp + 8]
mov byte [edi + 0x69], 0
push 0xe
pop ecx
xor edx, edx
call fcn.004528c8
mov dword [eax], 0x746e6f63
mov dword [eax + 4], 0x2d746e65
mov dword [eax + 8], 0x676e656c
mov word [eax + 0xc], 0x6874
mov dword [esp + 0x168], 1
and dword [esp + 0x16c], 0
and dword [esp + 0xa4], 0
mov dword [esp + 0x98], 0x20
mov byte [esp + 0xa8], 3
and dword [esp + 0x88], 0
and dword [esp + 0x90], 0
and dword [esp + 0x170], 0
lea esi, [esp + 0x88]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0x28], 0xe
mov dword [esp + 0xa0], 0x4dfa4c
push esi
push dword [esp + 0x5c]
call fcn.00428870
pop ecx
pop edx
test al, al
jne 0x440280
mov eax, dword [esp + 0x170]
movq xmm0, qword [esp + 0x168]
mov ebx, dword [esp + 0x60]
mov ecx, esi
mov dword [esp + 0x240], eax
lea eax, [esp + 0x238]
movq qword [esp + 0x238], xmm0
mov edx, ebx
push eax
lea eax, [esp + 0x24]
push eax
call fcn.0043d03f
pop eax
pop ecx
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x8c]
call fcn.0049e649
mov ecx, dword [edi + 0x58]
mov edx, dword [edi + 0x5c]
push 0x11
pop eax
push eax
mov eax, 0x4e04ce
push eax
push dword [edi + 0x64]
push dword [edi + 0x60]
call fcn.0045d0a5
add esp, 0x10
mov esi, edx
mov ecx, ebx
mov edx, eax
push 0x11
pop eax
push eax
mov eax, 0x4e04ce
push eax
push esi
call fcn.0043cc9c
add esp, 0xc
xor ebx, ebx
test eax, eax
je 0x440189
mov ecx, dword [edi + 0x48]
mov esi, eax
mov eax, ecx
sub eax, esi
cdq
push 0x18
pop ebx
idiv ebx
pcmpeqd xmm1, xmm1
lea edx, [eax - 0x10]
and edx, dword [edi + 0x4c]
movdqu xmm0, xmmword [ecx + edx]
pcmpeqb xmm0, xmm1
psllw xmm0, 7
pmovmskb edi, xmm0
test edi, edi
je 0x440134
bsr di, di
xor edi, 0xf
jmp 0x440138
mov di, 0x10
movdqu xmm0, xmmword [ecx + eax]
pcmpeqb xmm0, xmm1
pmovmskb ebx, xmm0
or ebx, 0x10000
bsf ebx, ebx
add edi, ebx
mov bl, 0x80
cmp di, 0xf
mov edi, dword [esp + 8]
ja 0x440161
inc dword [edi + 0x50]
mov bl, 0xff
mov byte [ecx + eax], bl
mov byte [edx + ecx + 0x10], bl
dec dword [edi + 0x54]
mov ebx, 0
mov ecx, dword [esi - 0x18]
test ecx, ecx
je 0x440189
mov eax, dword [esi - 8]
mov edx, dword [esi - 0x14]
mov ebx, dword [esi - 0xc]
mov dword [esp + 0x64], eax
call fcn.004a8f7f
mov edx, dword [esp + 0x64]
mov ecx, ebx
call fcn.0049e649
mov byte [esp + 0x14], 0x2d
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
call fcn.004a8f7f
mov dh, byte [esp + 0x14]
lea ecx, [esp + 0x8c]
jmp 0x43fcfd
movsd xmm0, qword [esp + 0x88]
mov eax, dword [esp + 0x1c]
movsd xmm1, qword [esp + 0x90]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
movsd qword [eax + 0xc], xmm1
movsd qword [eax + 4], xmm0
and dword [eax], 0
call fcn.004a8f7f
mov ecx, dword [esp + 8]
call fcn.0043b0a2
jmp 0x43f7f9
lea ecx, [esp + 0x88]
jmp 0x440204
lea ecx, [esp + 0x238]
call fcn.00440447
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 8]
mov ecx, dword [edx + 0x7c]
movq xmm0, qword [edx + 0x74]
movsd xmm1, qword [edx + 0x50]
lea esi, [esp + 0x88]
movsd xmm2, qword [edx + 0x48]
mov eax, dword [edx + 0x80]
mov dword [esi + 0x28], ecx
movq qword [esi + 0x20], xmm0
movsd qword [esi + 8], xmm1
movsd xmm1, qword [edx + 0x58]
movsd qword [esi], xmm2
movsd xmm2, qword [edx + 0x60]
mov ecx, dword [esp + 0x40]
movsd qword [esi + 0x10], xmm1
movq xmm1, qword [esp + 0x38]
movsd qword [esi + 0x18], xmm2
mov dword [esi + 0x34], ecx
movq qword [esi + 0x2c], xmm1
push 0xe
pop ecx
mov edi, ebx
add edx, 8
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [ebx + 0x38], eax
call fcn.0043c968
jmp 0x43f7f9
push 0x37
pop edx
mov ecx, str.a_Display_implementation_returned_an_error_unexpectedly
push 0x4e5544
push 0x4dfae4
lea eax, [esp + 0x240]
push eax
call fcn.004c8ad0
jmp 0x4402b0
mov edx, ebx
push 0x4e055c
push esi
push 0
call fcn.004c8ce0
add esp, 0xc
ud2