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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x120
mov esi, esp
mov dword [esi + 0x108], ebp
mov dword [esi + 0x10c], esp
mov dword [esi + 0x118], 0xffffffff
mov dword [esi + 0x114], 0x4b8680
mov dword [esi + 0x10], edx
lea edx, [esi + 0x110]
mov dword [esi + 0x70], ecx
mov eax, dword fs:[0]
mov dword [esi + 0x110], eax
mov dword fs:[0], edx
mov edx, dword [ebp + 8]
cmp byte [edx + 8], 2
jne 0x4ae4b2
lea eax, [ecx + 0x30]
mov byte [esi + 6], 1
mov dword [esi + 0x118], 3
push dword [esi + 0x10]
push eax
call fcn.00426150
add esp, 8
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x70]
test al, al
je 0x4ae4b2
mov eax, dword [0x69b710]
mov eax, dword [eax]
test eax, eax
je 0x4aeba5
lea ecx, [edx + 0xc]
mov dword [esi + 0x118], 0x19
call fcn.0043ae80
mov ecx, dword [ebp + 8]
cmp byte [ecx + 8], 2
jne 0x4aeb91
mov dword [esi + 0x118], 2
call fcn.004531a0
jmp 0x4af026
mov eax, dword [0x69b710]
mov eax, dword [eax]
test eax, eax
je 0x4aeb59
mov eax, dword [edx + 0x18]
movsd xmm0, qword [edx + 0x10]
movsd xmm2, qword [edx]
movsd xmm1, qword [edx + 8]
mov byte [esi + 5], 1
mov dword [esi + 0x118], 4
mov dword [esi + 0x90], eax
movsd qword [esi + 0x88], xmm0
movsd qword [esi + 0x80], xmm1
movsd qword [esi + 0x78], xmm2
lea eax, [ecx + 0x50]
push dword [esi + 0x10]
mov dword [esi + 0x104], eax
push eax
call fcn.004274e0
add esp, 8
mov dword [esi + 0x14], eax
cmp dword [esi + 0x14], 0
jne 0x4ae530
jmp 0x4aec38
cmp al, 2
je 0x4aebd3
nop word cs:[eax + eax]
mov ebx, dword [esi + 0x14]
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x4aebdc
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
lea edi, [ecx + 1]
cmp edi, edx
mov edi, dword [ebx]
mov dword [esi + 8], edi
mov edi, 0
cmovb edx, edi
dec eax
neg edx
lea edx, [ecx + edx + 1]
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 8]
mov bl, 1
mov eax, dword [eax + ecx*4]
mov dword [esi + 0x94], eax
mov dh, byte [eax + 0x40]
test dh, dh
je 0x4ae600
mov eax, dword [0x69b710]
mov eax, dword [eax]
test eax, eax
je 0x4aea15
test dh, dh
je 0x4ae530
mov edi, dword [esi + 0x94]
mov al, 1
xchg byte [edi + 0x40], al
mov al, 1
xchg byte [edi + 0x30], al
test al, al
jne 0x4ae5d5
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x2c]
mov dword [edi + 0x28], 0
mov edx, 0
xchg byte [edi + 0x30], dl
test ecx, ecx
je 0x4ae5d5
mov ecx, dword [ecx + 4]
mov dword [esi + 0x118], 0x17
push eax
mov dword [esi + 8], edi
call ecx
mov edi, dword [esi + 8]
add esp, 4
mov al, 1
xchg byte [edi + 0x3c], al
test al, al
je 0x4ae74a
mov eax, dword [esi + 0x94]
lock dec dword [eax]
jne 0x4ae530
jmp 0x4ae788
movzx eax, byte [esi + 0x91]
movzx ecx, word [esi + 0x92]
mov byte [esi + 0x91], 2
cmp al, 2
je 0x4af922
mov dl, byte [esi + 0x90]
movsd xmm0, qword [esi + 0x88]
movsd xmm2, qword [esi + 0x78]
movsd xmm1, qword [esi + 0x80]
mov byte [esi + 8], dh
mov byte [esi + 0x100], dl
movsd qword [esi + 0xf8], xmm0
movsd qword [esi + 0xf0], xmm1
movsd qword [esi + 0xe8], xmm2
mov byte [esi + 0x101], al
mov word [esi + 0x102], cx
movzx edx, byte [esi + 0xf0]
cmp dl, 2
jne 0x4ae7aa
mov ecx, dword [esi + 0xe8]
mov eax, dword [esi + 0xec]
mov byte [esi + 0x4f], dl
mov dword [esi + 0x118], 0x16
mov dword [esi + 0x9c], ecx
mov dword [esi + 0xe4], eax
mov dword [esi + 0xa0], eax
lea eax, [esi + 0xf4]
mov dword [esi + 0x74], ecx
push eax
lea eax, [esi + 0x18]
push eax
call fcn.004e7190
add esp, 8
mov edi, dword [esi + 0x74]
lock inc dword [edi]
jle 0x4af91e
mov ebx, dword [esi + 0xe4]
lock inc dword [ebx + 0xe8]
lock inc dword [ebx]
jle 0x4af91e
movsd xmm0, qword [esi + 0x18]
movsd xmm1, qword [esi + 0x1d]
lea eax, [esi + 0xab]
lea edx, [esi + 0xf4]
movzx ecx, word [esi + 0x26]
movsd xmm2, qword [edx + 8]
movsd qword [eax + 5], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [edx]
lea edx, [esi + 0x53]
movzx eax, byte [esi + 0x25]
movsd qword [edx + 8], xmm2
movsd qword [edx], xmm0
mov edx, dword [esi + 0x9c]
cmp al, 2
mov dword [esi + 0xe0], edx
mov edx, dword [esi + 0xa0]
mov dword [esi + 0xdc], edx
jne 0x4ae831
movzx edx, byte [esi + 0x4f]
mov edi, dword [esi + 0xe0]
mov ebx, dword [esi + 0xdc]
jmp 0x4ae7ff
mov ecx, dword [edi + 0x34]
mov eax, dword [edi + 0x38]
mov dword [esi + 8], edi
mov dword [edi + 0x34], 0
test ecx, ecx
je 0x4ae771
mov ecx, dword [ecx + 0xc]
mov dword [esi + 0x118], 0x18
push eax
call ecx
add esp, 4
mov ecx, dword [esi + 8]
xor eax, eax
xchg byte [ecx + 0x3c], al
mov eax, dword [esi + 0x94]
lock dec dword [eax]
jne 0x4ae530
lea eax, [esi + 0x94]
mov byte [esi + 5], 1
mov dword [esi + 0x118], 4
push eax
call fcn.0042dc60
add esp, 4
jmp 0x4ae530
lea ecx, [esi + 0xf1]
mov edi, dword [esi + 0xe8]
mov ebx, dword [esi + 0xec]
movzx eax, byte [ecx + 2]
mov byte [esi + 0x1a], al
movzx eax, word [ecx]
mov word [esi + 0x18], ax
lea eax, [esi + 0xf4]
movsd xmm0, qword [eax]
movsd xmm1, qword [eax + 8]
lea eax, [esi + 0x1b]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
movsd xmm0, qword [esi + 0x20]
movsd xmm1, qword [esi + 0x18]
mov eax, dword [esi + 0x27]
movsd qword [esi + 0x58], xmm0
mov dword [esi + 0x5f], eax
movsd qword [esi + 0x50], xmm1
mov eax, dword [esi + 0x5f]
movsd xmm0, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
mov dword [esi + 0x118], 0x11
mov dword [esi + 0xcf], eax
movsd qword [esi + 0xc8], xmm1
movsd qword [esi + 0xc0], xmm0
jmp 0x4ae92b
cmp byte [esi + 0x91], 2
movsd xmm0, qword [esi + 0xa8]
movsd xmm1, qword [esi + 0xb0]
lea edx, [esi + 0x1b]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], ebx
mov byte [esi + 0x20], 2
movsd qword [edx + 0xe], xmm1
movsd qword [edx + 6], xmm0
mov byte [esi + 0x31], al
mov word [esi + 0x32], cx
je 0x4ae8be
lea ecx, [esi + 0x84]
mov dword [esi + 0x118], 0x15
call fcn.0043ae80
cmp byte [esi + 0x80], 2
jne 0x4ae8a3
lea ecx, [esi + 0x78]
mov dword [esi + 0x118], 0x14
call fcn.004531a0
mov edi, dword [esi + 0x74]
mov ebx, dword [esi + 0xe4]
jmp 0x4ae8be
lea ecx, [esi + 0x78]
mov dword [esi + 0x118], 0x14
call fcn.004531a0
mov edi, dword [esi + 0x74]
mov ebx, dword [esi + 0xe4]
mov eax, dword [esi + 0xe0]
movsd xmm0, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
lea ecx, [esi + 0x84]
movzx edx, byte [esi + 0x4f]
mov dword [esi + 0x118], 0x11
mov dword [esi + 0x78], eax
mov eax, dword [esi + 0xdc]
mov dword [esi + 0x7c], eax
mov eax, dword [esi + 0x5f]
mov byte [esi + 0x80], 2
movsd qword [ecx - 3], xmm0
mov dword [ecx + 0xc], eax
lea eax, [esi + 0x1b]
movsd qword [ecx + 5], xmm1
movsd xmm0, qword [eax + 6]
movsd xmm1, qword [eax + 0xe]
mov eax, dword [eax + 0x15]
movsd qword [esi + 0xc8], xmm1
movsd qword [esi + 0xc0], xmm0
mov dword [esi + 0xcf], eax
mov eax, dword [esi + 0xcf]
movsd xmm0, qword [esi + 0xc0]
movsd xmm1, qword [esi + 0xc8]
lea ecx, [esi + 0x1b]
mov dword [esi + 0x18], edi
mov dword [esi + 0x1c], ebx
mov byte [esi + 0x20], dl
mov byte [esi + 7], 0
mov dword [ecx + 0x15], eax
mov eax, dword [esi + 0x94]
movsd qword [ecx + 0xe], xmm1
movsd qword [ecx + 6], xmm0
lea ecx, [esi + 0x18]
push ecx
push eax
lea eax, [esi + 0x50]
push eax
call fcn.00489df0
add esp, 0xc
cmp byte [esi + 0x69], 2
movzx eax, byte [esi + 0x91]
mov dh, byte [esi + 8]
je 0x4ae51e
cmp al, 2
je 0x4ae9d7
lea ecx, [esi + 0x84]
mov dword [esi + 0x118], 0x13
call fcn.0043ae80
cmp byte [esi + 0x80], 2
jne 0x4ae9c2
lea ecx, [esi + 0x78]
mov dword [esi + 0x118], 0x12
call fcn.004531a0
mov dh, byte [esi + 8]
jmp 0x4ae9d7
lea ecx, [esi + 0x78]
mov dword [esi + 0x118], 0x12
call fcn.004531a0
mov dh, byte [esi + 8]
mov eax, dword [esi + 0x68]
movsd xmm0, qword [esi + 0x60]
movsd xmm2, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
xor ebx, ebx
mov dword [esi + 0x90], eax
movsd qword [esi + 0x88], xmm0
movsd qword [esi + 0x80], xmm1
movsd qword [esi + 0x78], xmm2
mov eax, dword [0x69b710]
mov eax, dword [eax]
test eax, eax
jne 0x4ae58b
mov eax, dword [0x69a140]
movzx eax, byte [eax + 8]
test al, al
je 0x4ae58b
movzx ecx, al
mov byte [esi + 8], dh
mov dword [esi + 0x74], ebx
cmp ecx, 1
je 0x4aea70
cmp ecx, 2
jne 0x4aea47
mov dword [esi + 0x118], 0x11
mov al, 2
jmp 0x4aea70
mov byte [esi + 7], bl
mov dword [esi + 0x118], 0x11
push dword [0x69a140]
call fcn.0059e2f0
add esp, 4
mov dh, byte [esi + 8]
mov ebx, dword [esi + 0x74]
test al, al
je 0x4ae58b
mov ecx, dword [0x69a140]
movzx eax, al
mov byte [esi + 7], bl
mov dword [esi + 0x118], 0x11
mov ecx, dword [ecx]
push eax
push ecx
call fcn.005313d0
add esp, 8
mov dh, byte [esi + 8]
mov ebx, dword [esi + 0x74]
test al, al
je 0x4ae58b
mov eax, dword [0x69a140]
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4af949
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
lea edi, [esi + 0xa8]
mov dword [esi + 0x18], 0x60de28
mov dword [esi + 0x1c], 1
mov dword [esi + 0x28], 0
mov byte [esi + 7], bl
mov dword [esi + 0xc0], edi
mov dword [esi + 0xc4], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [eax + 0x1c]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x9c]
mov dword [esi + 0xa0], 0x424940
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0xac], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0xb0], 0x60d714
push ecx
push eax
call fcn.00531b00
add esp, 8
mov dh, byte [esi + 8]
jmp 0x4ae58b
mov edi, dword [0x69a144]
movzx eax, byte [edi + 8]
test al, al
je 0x4ae4c1
movzx ecx, al
cmp ecx, 1
je 0x4af088
cmp ecx, 2
jne 0x4af05d
mov dword [esi + 0x118], 3
mov al, 2
jmp 0x4af088
mov dword [esi + 0x118], 2
call fcn.004531a0
jmp 0x4af026
mov edi, dword [0x69a148]
movzx eax, byte [edi + 8]
test al, al
je 0x4ae47f
movzx ecx, al
cmp ecx, 1
je 0x4af2be
cmp ecx, 2
jne 0x4af2a0
mov al, 2
jmp 0x4af2be
mov eax, dword [esi + 0x14]
cmp dword [eax + 0xc], 0
jne 0x4aec38
mov byte [esi + 5], 1
mov dword [esi + 0x118], 4
push dword [esi + 0x10]
push dword [esi + 0x104]
lea eax, [esi + 0x18]
push eax
call fcn.00426f90
add esp, 0xc
mov eax, dword [esi + 0x18]
test eax, eax
je 0x4aec38
mov dword [esi + 8], eax
lea eax, [esi + 0x18]
mov dword [esi + 0x118], 0x10
push eax
call fcn.00418430
add esp, 4
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 8]
test eax, eax
je 0x4aec38
shl eax, 2
push 4
push eax
push ecx
call fcn.00407080
add esp, 0xc
cmp byte [esi + 0x91], 2
jne 0x4aec88
mov eax, dword [0x69b710]
mov eax, dword [eax]
test eax, eax
jne 0x4af89d
mov edx, dword [0x69a134]
movzx eax, byte [edx + 8]
test al, al
je 0x4af89d
movzx ecx, al
cmp ecx, 1
je 0x4af1c4
cmp ecx, 2
jne 0x4af19f
mov dword [esi + 0x118], 4
mov al, 2
jmp 0x4af1c4
mov eax, dword [esi + 0x90]
movsd xmm0, qword [esi + 0x88]
movsd xmm1, qword [esi + 0x80]
mov dword [esi + 0xd8], eax
mov eax, dword [esi + 0x10]
movsd qword [esi + 0xd0], xmm0
movsd xmm0, qword [esi + 0x78]
movsd qword [esi + 0xc8], xmm1
movzx eax, byte [eax]
movsd qword [esi + 0xc0], xmm0
test eax, eax
je 0x4aece5
cmp eax, 1
jne 0x4aece9
mov eax, dword [esi + 0x10]
mov dword [esi + 0x118], 0xd
mov cl, 1
movzx eax, byte [eax + 1]
jmp 0x4aed48
xor ecx, ecx
jmp 0x4aed48
mov eax, dword [esi + 0x10]
mov edi, dword [eax + 4]
movzx eax, byte [0x69b8b9]
push 4
push 0x10
call fcn.00407070
add esp, 8
test eax, eax
mov dword [esi + 8], eax
je 0x4af979
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
add edi, 0xc
lea ebx, [esi + 0x18]
mov eax, dword [eax]
mov dword [esi + 0x118], 0xe
push edx
push ecx
push edi
push ebx
call eax
add esp, 0x10
movsd xmm0, qword [esi + 0x18]
mov edx, dword [esi + 8]
movsd xmm1, qword [esi + 0x20]
mov cl, 2
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
mov edi, dword [esi + 0x10]
mov byte [esi + 0x50], cl
mov byte [esi + 0x51], al
mov dword [esi + 0x14], ecx
mov dword [esi + 8], edx
mov dword [esi + 0x54], edx
lea ebx, [esi + 0x18]
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
lea edx, [edi + 0x14]
mov edi, dword [edi + 0x10]
mov eax, dword [eax]
mov dword [esi + 0x118], 0xd
push edi
push ecx
push edx
push ebx
call eax
add esp, 0x10
mov eax, dword [esi + 0x70]
movsd xmm0, qword [esi + 0x18]
movsd xmm1, qword [esi + 0x20]
lea ecx, [esi + 0x50]
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
movsd qword [esi + 0x60], xmm1
movsd qword [esi + 0x58], xmm0
add eax, 0x30
push ecx
push eax
lea eax, [esi + 0x18]
push eax
call fcn.00425d30
add esp, 0xc
movzx ebx, byte [esi + 0x18]
cmp bl, 3
jne 0x4aee7e
mov eax, dword [esi + 0x2c]
movsd xmm0, qword [esi + 0x1c]
movsd xmm1, qword [esi + 0x24]
mov ecx, dword [esi + 0x30]
mov edi, dword [esi + 0x34]
mov edx, dword [esi + 0x38]
movsd qword [esi + 0x18], xmm0
mov dword [esi + 0x28], eax
movsd qword [esi + 0x20], xmm1
mov dword [esi + 0x30], edi
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x34], edx
mov dword [esi + 0xbb], eax
movsd qword [esi + 0xb3], xmm1
movsd qword [esi + 0xab], xmm0
movzx eax, byte [esi + 0x18]
cmp al, 3
je 0x4aef76
mov dword [esi + 8], edi
lea edi, [esi + 0x2c]
cmp al, 2
jb 0x4aee54
mov edi, dword [esi + 0x1c]
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [esi + 0x14], edi
add edi, 0xc
mov eax, dword [eax + 8]
mov dword [esi + 0x118], 7
push edx
push ecx
push edi
call eax
add esp, 0xc
push 4
push 0x10
push dword [esi + 0x14]
call fcn.00407080
add esp, 0xc
lea edi, [esi + 0x2c]
mov eax, dword [esi + 0x20]
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x24]
mov eax, dword [eax + 8]
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push edx
push ecx
push edi
call eax
add esp, 0xc
mov edi, dword [esi + 8]
jmp 0x4aef76
movsd xmm0, qword [esi + 0x28]
movsd xmm1, qword [esi + 0x21]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x30]
mov byte [esi + 8], bl
movsd qword [esi + 0xb7], xmm0
movsd xmm0, qword [esi + 0x19]
movsd qword [esi + 0xb0], xmm1
mov dword [esi + 0x74], edx
mov dword [esi + 0x14], ecx
movsd qword [esi + 0xa8], xmm0
mov eax, dword [ecx + 4]
mov edi, eax
and edi, edx
mov edx, dword [ecx]
movdqu xmm0, xmmword [edx + edi]
pmovmskb ecx, xmm0
test ecx, ecx
jne 0x4aeee4
mov ebx, 0x10
nop
add edi, ebx
add ebx, 0x10
and edi, eax
movdqu xmm0, xmmword [edx + edi]
pmovmskb ecx, xmm0
test ecx, ecx
je 0x4aeed0
tzcnt ecx, ecx
add ecx, edi
and ecx, eax
movzx ebx, byte [edx + ecx]
test bl, bl
js 0x4aef04
movdqa xmm0, xmmword [edx]
pmovmskb ecx, xmm0
tzcnt ecx, ecx
movzx ebx, byte [edx + ecx]
lea edi, [ecx - 0x10]
and bl, 1
and edi, eax
mov eax, dword [esi + 0x74]
shr eax, 0x19
mov byte [edx + ecx], al
mov byte [edi + edx + 0x10], al
movzx eax, bl
mov ebx, dword [esi + 0x14]
neg ecx
sub dword [ebx + 8], eax
lea eax, [ecx + ecx*8]
mov ch, byte [esi + 8]
lea edi, [edx + eax*4]
mov byte [edx + eax*4 - 0x24], ch
movsd xmm0, qword [esi + 0xa8]
movsd xmm1, qword [esi + 0xb0]
movsd qword [edx + eax*4 - 0x23], xmm0
movsd qword [edx + eax*4 - 0x1b], xmm1
movsd xmm0, qword [esi + 0xb7]
movsd qword [edx + eax*4 - 0x14], xmm0
mov dword [edx + eax*4 - 0xc], 8
mov dword [edx + eax*4 - 8], 0
mov dword [edx + eax*4 - 4], 0
inc dword [ebx + 0xc]
mov eax, dword [esi + 0x70]
mov eax, dword [eax + 0x78]
cmp eax, dword [edi - 4]
mov eax, dword [0x69b710]
mov eax, dword [eax]
jbe 0x4aefcc
cmp eax, 1
mov dword [esi + 8], edi
ja 0x4af489
mov edx, dword [0x69a138]
movzx eax, byte [edx + 8]
test al, al
je 0x4af489
movzx ecx, al
cmp ecx, 1
je 0x4af3b2
cmp ecx, 2
jne 0x4af38d
mov dword [esi + 0x118], 5
mov al, 2
jmp 0x4af3b2
test eax, eax
je 0x4af167
lea ecx, [esi + 0xcc]
mov dword [esi + 0x118], 0xf
call fcn.0043ae80
cmp byte [esi + 0xc8], 2
jne 0x4af00d
lea ecx, [esi + 0xc0]
mov byte [esi + 5], 0
mov dword [esi + 0x118], 4
call fcn.004531a0
jmp 0x4af026
lea ecx, [esi + 0xc0]
mov byte [esi + 5], 0
mov dword [esi + 0x118], 4
call fcn.004531a0
mov eax, dword [esi + 0x10]
cmp byte [eax], 2
jb 0x4af8e7
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [esi + 8], edi
add edi, 0xc
mov eax, dword [eax + 8]
mov dword [esi + 0x118], 1
push edx
push ecx
push edi
call eax
add esp, 0xc
jmp 0x4af8cb
mov byte [esi + 6], 1
mov dword [esi + 0x118], 3
push edi
call fcn.0059e2f0
add esp, 4
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x70]
mov edi, dword [0x69a144]
test al, al
je 0x4ae4c1
mov ecx, dword [edi]
movzx eax, al
mov byte [esi + 6], 1
mov dword [esi + 0x118], 3
push eax
push ecx
call fcn.005313d0
add esp, 8
test al, al
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x70]
mov eax, dword [0x69a144]
je 0x4ae4c1
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4af998
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + 0x18], 0x60ddc8
mov dword [esi + 0x1c], 1
mov dword [esi + 0x28], 0
mov byte [esi + 6], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0xa8]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0x78], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0x7c], ecx
lea ecx, [esi + 0x78]
mov dword [esi + 0x80], 0x60d714
mov dword [esi + 0xc0], ecx
lea ecx, [eax + 0x1c]
mov dword [esi + 0xc4], 1
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0xac], 0x424940
push ecx
push eax
call fcn.00531b00
add esp, 8
mov edx, dword [ebp + 8]
mov ecx, dword [esi + 0x70]
jmp 0x4ae4c1
mov edx, dword [0x69a13c]
movzx eax, byte [edx + 8]
test al, al
je 0x4aefd4
movzx ecx, al
cmp ecx, 1
je 0x4af757
cmp ecx, 2
jne 0x4af732
mov dword [esi + 0x118], 5
mov al, 2
jmp 0x4af757
mov byte [esi + 5], 1
mov dword [esi + 0x118], 4
push edx
call fcn.0059e2f0
add esp, 4
mov edx, dword [0x69a134]
test al, al
je 0x4af89d
mov ecx, dword [edx]
movzx eax, al
mov byte [esi + 5], 1
mov dword [esi + 0x118], 4
push eax
push ecx
call fcn.005313d0
add esp, 8
test al, al
mov eax, dword [0x69a134]
je 0x4af89d
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4af9b5
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + 0x18], 0x60de58
mov dword [esi + 0x1c], 1
mov dword [esi + 0x28], 0
mov byte [esi + 5], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0x9c]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0xac], ecx
lea ecx, [esi + 0xa8]
mov dword [esi + 0xb0], 0x60d714
mov dword [esi + 0xc0], ecx
lea ecx, [eax + 0x1c]
mov dword [esi + 0xc4], 1
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0xa0], 0x424940
push ecx
push eax
call fcn.00531b00
add esp, 8
jmp 0x4af89d
mov byte [esi + 6], 1
push edi
call fcn.0059e2f0
add esp, 4
mov edx, dword [ebp + 8]
mov edi, dword [0x69a148]
test al, al
je 0x4ae47f
mov ecx, dword [edi]
movzx eax, al
mov byte [esi + 6], 1
push eax
push ecx
call fcn.005313d0
add esp, 8
test al, al
mov edx, dword [ebp + 8]
mov eax, dword [0x69a148]
je 0x4ae47f
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4af9e7
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + 0x18], 0x60df1c
mov dword [esi + 0x1c], 1
mov dword [esi + 0x28], 0
mov byte [esi + 6], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0xa8]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0x78], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0x7c], ecx
lea ecx, [esi + 0x78]
mov dword [esi + 0x80], 0x60d714
mov dword [esi + 0xc0], ecx
lea ecx, [eax + 0x1c]
mov dword [esi + 0xc4], 1
mov dword [esi + 0xc8], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0xa8], ecx
lea ecx, [esi + 0xc0]
mov dword [esi + 0xac], 0x424940
push ecx
push eax
call fcn.00531b00
add esp, 8
mov edx, dword [ebp + 8]
jmp 0x4ae47f
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push edx
call fcn.0059e2f0
add esp, 4
mov edx, dword [0x69a138]
test al, al
je 0x4af489
mov ecx, dword [edx]
movzx eax, al
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push eax
push ecx
call fcn.005313d0
add esp, 8
test al, al
mov eax, dword [0x69a138]
je 0x4af489
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4afa01
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + 0x18], 0x60de8c
mov dword [esi + 0x1c], 1
mov dword [esi + 0x28], 0
mov byte [esi + 4], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0x94]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x9c]
mov dword [esi + 0xa8], ecx
lea ecx, [eax + 0x1c]
mov dword [esi + 0xac], 1
mov dword [esi + 0xb0], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0x98], 0x424940
mov dword [esi + 0xa0], ecx
lea ecx, [esi + 0xa8]
mov dword [esi + 0xa4], 0x60d714
push ecx
push eax
call fcn.00531b00
add esp, 8
mov eax, dword [esi + 0xd8]
movsd xmm0, qword [esi + 0xd0]
movsd xmm2, qword [esi + 0xc0]
movsd xmm1, qword [esi + 0xc8]
mov dword [esi + 0x118], 0xc
mov dword [esi + 0x68], eax
movsd qword [esi + 0x60], xmm0
movsd qword [esi + 0x58], xmm1
movsd qword [esi + 0x50], xmm2
call fcn.005423f0
movsd xmm1, qword [esi + 0x58]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], edx
mov dword [esi + 0x20], ecx
movsd xmm0, qword [esi + 0x50]
mov eax, dword [esi + 0x68]
mov edi, dword [esi + 8]
movsd qword [esi + 0x30], xmm1
movsd xmm1, qword [esi + 0x60]
movsd qword [esi + 0x28], xmm0
mov dword [esi + 0x40], eax
movsd qword [esi + 0x38], xmm1
mov eax, dword [edi - 4]
cmp eax, dword [edi - 8]
jne 0x4af51d
lea ecx, [edi - 0xc]
mov dword [esi + 0x118], 0xb
push eax
push ecx
call fcn.00485960
add esp, 8
mov edi, dword [esi + 8]
mov eax, dword [edi - 4]
mov ecx, dword [edi - 0xc]
movsd xmm0, qword [esi + 0x18]
movsd xmm1, qword [esi + 0x20]
movsd xmm2, qword [esi + 0x28]
movsd xmm3, qword [esi + 0x30]
movsd xmm4, qword [esi + 0x38]
movsd xmm5, qword [esi + 0x40]
mov edx, dword [esi + 0x70]
lea eax, [eax + eax*2]
shl eax, 4
movsd qword [ecx + eax + 0x28], xmm5
movsd qword [ecx + eax + 0x20], xmm4
movsd qword [ecx + eax + 0x18], xmm3
movsd qword [ecx + eax + 0x10], xmm2
movsd qword [ecx + eax + 8], xmm1
movsd qword [ecx + eax], xmm0
inc dword [edi - 4]
cmp dword [edx + 0x7c], 0
jne 0x4af89d
mov edi, dword [edx + 8]
cmp edi, 0x3b9aca00
je 0x4af89d
mov eax, dword [edx]
mov dword [esi + 0x20], 0
mov byte [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov byte [esi + 0x34], 0
mov word [esi + 0x38], 0
mov dword [esi + 0x18], 1
mov dword [esi + 0x1c], 1
mov ebx, dword [edx + 4]
mov dword [esi + 0x14], eax
movzx eax, byte [0x69b8b9]
push 4
push 0x24
call fcn.00407070
add esp, 8
test eax, eax
je 0x4af9cf
movsd xmm1, qword [esi + 0x28]
mov edx, eax
mov eax, dword [esi + 0x38]
movsd xmm0, qword [esi + 0x30]
movsd xmm2, qword [esi + 0x18]
lea ecx, [esi + 0x18]
movsd qword [edx + 0x10], xmm1
movsd xmm1, qword [esi + 0x20]
mov dword [edx + 0x20], eax
movsd qword [edx + 0x18], xmm0
movsd qword [edx], xmm2
movsd qword [edx + 8], xmm1
lock inc dword [edx]
jle 0x4af91e
mov eax, dword [esi + 0x70]
mov dword [esi + 8], edx
mov dword [esi + 0xa8], edx
mov byte [esi + 0xf], 1
mov dword [esi + 0x118], 8
mov dword [eax + 0x7c], edx
push 0x60dd88
push edi
push ebx
push dword [esi + 0x14]
push ecx
call fcn.00550620
add esp, 0x14
mov eax, dword [ebp + 0xc]
mov edx, dword [esi + 0x70]
mov edi, dword [eax]
jmp 0x4af64a
pause
mov eax, dword [edi + 4]
nop dword [eax]
cmp eax, 0xffffffff
je 0x4af648
test eax, eax
js 0x4af965
lea ecx, [eax + 1]
lock cmpxchg dword [edi + 4], ecx
jne 0x4af650
mov eax, dword [edx + 0x70]
movsd xmm0, qword [esi + 0x28]
movsd xmm2, qword [esi + 0x18]
movsd xmm1, qword [esi + 0x20]
test eax, eax
movsd qword [esi + 0x60], xmm0
movsd qword [esi + 0x58], xmm1
movsd qword [esi + 0x50], xmm2
je 0x4af833
mov dword [esi + 0x74], eax
mov eax, dword [edx + 0x74]
movsd xmm0, qword [esi + 0x60]
movsd xmm1, qword [esi + 0x58]
mov ebx, dword [eax + 8]
mov dword [esi + 0x14], eax
movsd qword [esi + 0x28], xmm0
movsd xmm0, qword [esi + 0x50]
mov eax, dword [esi + 8]
movsd qword [esi + 0x20], xmm1
movsd qword [esi + 0x18], xmm0
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
movzx eax, byte [0x69b8b9]
push 8
push 0x20
call fcn.00407070
add esp, 8
test eax, eax
je 0x4afa35
movsd xmm0, qword [esi + 0x60]
movsd xmm2, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
mov ecx, dword [esi + 8]
dec ebx
mov byte [esi + 0xf], 0
mov dword [esi + 0x118], 8
and ebx, 0xfffffff8
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
mov dword [eax + 0x18], ecx
mov ecx, dword [esi + 0x74]
mov dword [eax + 0x1c], edi
lea ecx, [ebx + ecx + 8]
push 0x60e2e4
push eax
push ecx
mov eax, dword [esi + 0x14]
call dword [eax + 0xc]
add esp, 0xc
jmp 0x4af89d
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push edx
call fcn.0059e2f0
add esp, 4
mov edx, dword [0x69a13c]
test al, al
je 0x4aefd4
mov ecx, dword [edx]
movzx eax, al
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push eax
push ecx
call fcn.005313d0
add esp, 8
test al, al
mov eax, dword [0x69a13c]
je 0x4aefd4
mov eax, dword [eax]
mov ecx, dword [eax + 0x20]
test ecx, ecx
je 0x4afa1b
mov edx, dword [eax + 0x1c]
movsd xmm0, qword [eax + 0x24]
mov dword [esi + 0x18], 0x60ded0
mov dword [esi + 0x1c], 2
mov dword [esi + 0x28], 0
mov byte [esi + 4], 1
mov dword [esi + 0x50], edx
mov dword [esi + 0x54], ecx
lea ecx, [esi + 0x94]
movlps qword [esi + 0x58], xmm0
mov dword [esi + 0x60], 0
mov dword [esi + 0x20], ecx
lea ecx, [esi + 0x50]
mov dword [esi + 0x24], 1
mov dword [esi + 0x9c], ecx
lea ecx, [esi + 0x18]
mov dword [esi + 0xa0], ecx
lea ecx, [esi + 0x9c]
mov dword [esi + 0xa4], 0x60d714
mov dword [esi + 0xa8], ecx
lea ecx, [eax + 0x1c]
mov dword [esi + 0xac], 1
mov dword [esi + 0xb0], ecx
mov ecx, dword [esi + 0x10]
mov dword [esi + 0x94], ecx
lea ecx, [esi + 0xa8]
mov dword [esi + 0x98], 0x424940
push ecx
push eax
call fcn.00531b00
add esp, 8
jmp 0x4aefd4
movsd xmm0, qword [esi + 0x60]
movsd xmm2, qword [esi + 0x50]
movsd xmm1, qword [esi + 0x58]
mov eax, dword [esi + 8]
mov byte [esi + 0xf], 0
mov dword [esi + 0x118], 8
movsd qword [esi + 0x28], xmm0
movsd qword [esi + 0x20], xmm1
movsd qword [esi + 0x18], xmm2
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
push 0x60e2d4
lea eax, [esi + 0x18]
push eax
call fcn.0043d7e0
add esp, 8
mov byte [esi + 0xf], 0
push eax
mov dword [esi + 8], eax
call fcn.0053a8f0
mov ecx, dword [esi + 8]
add esp, 4
test al, al
je 0x4af89d
mov byte [esi + 0xf], 0
push ecx
call fcn.0053ad50
add esp, 4
mov eax, dword [esi + 0x10]
cmp byte [eax], 2
jb 0x4af8e7
mov edi, dword [eax + 4]
mov eax, dword [edi]
mov edx, dword [edi + 8]
mov ecx, dword [edi + 4]
mov dword [esi + 8], edi
add edi, 0xc
mov eax, dword [eax + 8]
mov dword [esi + 0x118], 0
push edx
push ecx
push edi
call eax
add esp, 0xc
push 4
push 0x10
push dword [esi + 8]
call fcn.00407080
add esp, 0xc
mov eax, dword [esi + 0x10]
mov dword [esi + 0x118], 0xffffffff
mov edi, eax
mov eax, dword [eax + 8]
mov edx, dword [edi + 0x10]
mov ecx, dword [edi + 0xc]
add edi, 0x14
mov eax, dword [eax + 8]
mov dword [esi + 0x118], 0xffffffff
push edx
push ecx
push edi
call eax
add esp, 0xc
mov eax, dword [esi + 0x110]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
ud2
mov byte [esi + 7], 1
mov dword [esi + 0x118], 0x11
push 0x60dde4
push 0x12
push str.value_already_sent
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov byte [esi + 7], bl
push 0x60ddf4
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov dword [esi + 0x118], 0xa
call fcn.0059c190
jmp 0x4afa4b
mov byte [esi + 4], 1
mov dword [esi + 0x118], 5
push 0x10
push 4
call fcn.005a08c0
add esp, 8
jmp 0x4afa4b
mov byte [esi + 6], 1
push 0x60dd98
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov byte [esi + 5], 1
push 0x60de30
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov dword [esi + 0x118], 6
push 0x24
push 4
call fcn.005a08c0
add esp, 8
jmp 0x4afa4b
mov byte [esi + 6], 1
push 0x60dee0
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov byte [esi + 4], 1
push 0x60de60
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov byte [esi + 4], 1
push 0x60de94
push 0x22
push 0x60d6c8
call fcn.005a0a40
add esp, 0xc
jmp 0x4afa4b
mov dword [esi + 0x118], 9
push 0x20
push 8
call fcn.005a08c0
add esp, 8
ud2