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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x160
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xa4], ecx
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0xc8]
mov dword [esp + 0x9c], eax
shr eax, 0x10
cmp ax, 5
mov dword [esp + 0xf8], eax
lea eax, [ecx + 0x60]
lea ecx, [ecx + 0x58]
cmovae ecx, eax
mov eax, dword [edx + 0x10]
setae byte [esp + 0x57]
mov dword [esp + 0x138], ecx
cmp eax, dword [ebp + 8]
mov dword [esp + 0xc8], eax
call 0x4a3ace
pop eax
mov dword [esp + 0xa8], eax
jle 0x4a4a62
mov ebx, dword [esp + 0x9c]
mov esi, edx
mov edi, dword [ebp + 0x24]
mov dword [esp + 0x1c], esi
mov eax, ebx
and eax, 0xff00
mov dword [esp + 0x12c], eax
mov eax, dword [edx + 8]
mov ecx, dword [eax + 0x24]
add ecx, dword [edx]
xor edx, edx
cmp byte [eax + 0x21], 8
sete dl
lea edx, [ecx + edx*8]
mov ecx, dword [eax + 0x1c]
add ecx, dword [eax + 0x18]
mov eax, dword [ebp + 0x10]
sub edx, ecx
movzx ecx, byte [eax + 0xc9]
add edx, 4
mov byte [esp + 0x23], cl
movzx ecx, word [eax + 0xca]
mov word [esp + 0xe2], cx
mov ecx, dword [eax + 0xf4]
mov dword [esp + 0xfc], ecx
mov ecx, dword [eax + 0x100]
mov dword [esp + 0xb8], ecx
movzx ecx, bh
mov dword [esp + 0x130], ecx
mov ecx, dword [eax + 0xf8]
mov dword [esp + 0xa0], ecx
movzx ecx, bl
mov ebx, dword [eax + 0xec]
mov eax, dword [eax + 0xe8]
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x128], eax
lea eax, [edi + 1]
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x134], eax
jmp 0x4a3c4d
mov eax, dword [ecx + 4]
mov edi, dword [esp + 0x30]
mov ebx, ecx
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*8], edi
mov edi, dword [esp + 0xcc]
mov dword [eax + ecx*8 + 0xc], edi
mov edi, dword [esp + 0xd0]
mov dword [eax + ecx*8 + 8], edi
mov edi, dword [ebp + 0x24]
mov dword [eax + ecx*8 + 0x10], edi
mov dword [eax + ecx*8 + 0x14], esi
mov dword [ebx + 8], edx
mov esi, dword [esp + 0x1c]
movzx eax, byte [ebp + 0xc]
lea ecx, [esp + 0x40]
mov edx, esi
push dword [esp + 0x134]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push eax
push dword [esp + 0xe4]
call fcn.004a3a70
add esp, 0x20
movzx eax, byte [esp + 0x40]
cmp al, 0x4b
jne 0x4a4af1
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 8]
xor edx, edx
cmp byte [eax + 0x21], 8
mov ecx, dword [eax + 0x24]
mov edi, dword [eax + 0x1c]
sete dl
add ecx, dword [esi]
add edi, dword [eax + 0x18]
mov eax, dword [esi + 0x10]
lea edx, [ecx + edx*8]
mov dword [esp + 0xc8], eax
sub edx, edi
add edx, 4
cmp eax, dword [ebp + 8]
jle 0x4a4a62
mov dword [esp + 0x13c], edx
lea ecx, [esp + 0x58]
mov edx, esi
call fcn.004a55f0
movzx eax, byte [esp + 0x58]
cmp al, 0x4b
jne 0x4a4ac0
mov edi, dword [esp + 0x5c]
test edi, edi
je 0x4a3c1b
movzx eax, word [edi + 0x60]
cmp eax, 0x1d
je 0x4a3ca0
cmp eax, 0x2e
jne 0x4a4420
cmp dword [edi], 0
mov dword [esp + 0x24], ebx
je 0x4a4434
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
jmp 0x4a4443
cmp dword [edi], 0
je 0x4a44f5
mov ecx, dword [edi + 0xc]
mov edi, dword [edi + 8]
test ecx, ecx
je 0x4a450c
shl ecx, 4
xorps xmm0, xmm0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xc4], 0
movaps xmmword [esp + 0x140], xmm0
jmp 0x4a3d47
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x100]
add edi, 0x10
add ecx, 0xfffffff0
je 0x4a457c
movsd xmm0, qword [edi]
movq xmm1, qword [edi + 8]
mov eax, dword [esi + 8]
mov dword [esp + 0x24], ebx
lea ebx, [esp + 0x80]
mov dword [esp + 0x100], ecx
lea ecx, [esp + 0x58]
mov edx, esi
movq qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
push ebx
push dword [eax + 0x20]
call fcn.0049f9e0
add esp, 8
mov eax, dword [esp + 0x58]
mov ecx, eax
xor ecx, 0x2e
or ecx, dword [esp + 0x5c]
je 0x4a4676
movzx ecx, word [esp + 0x68]
lea edx, [ecx - 3]
cmp edx, 0x56
ja 0x4a3e40
mov ecx, dword [edx*4 + 0x4a4b38]
mov ebx, dword [esp + 0x24]
add ecx, dword [esp + 0xa8]
jmp ecx
cmp ecx, 0x6e
je 0x4a3e51
cmp ecx, 0x2007
jne 0x4a3d30
lea ebx, [esp + 0x80]
lea edx, [esp + 0x58]
mov ecx, ebx
call fcn.004a15d0
movzx eax, byte [esp + 0x23]
mov edx, dword [ebp + 0x18]
lea ecx, [esp + 8]
push ebx
push dword [esp + 0x100]
push eax
call fcn.0049ea80
add esp, 0xc
cmp byte [esp + 8], 0x4b
jne 0x4a3d30
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xdc], eax
mov dword [esp + 0x3c], ecx
jmp 0x4a3d30
cmp dword [edi], 0
je 0x4a463b
mov eax, dword [edi + 0xc]
mov edi, dword [edi + 8]
jmp 0x4a464a
mov eax, dword [edi + 4]
cmp eax, 6
jae 0x4a4b27
add edi, 8
mov ebx, esi
mov esi, dword [esi + 8]
lea ecx, [esp + 0x58]
mov edx, ebx
push eax
push edi
push dword [esi + 0x20]
call fcn.0049f140
add esp, 0xc
movzx eax, byte [esp + 0x58]
cmp al, 0x4b
jne 0x4a4a71
mov eax, dword [esp + 0xc8]
mov esi, ebx
cmp dword [ebx + 0x10], eax
mov ebx, dword [esp + 0x24]
jg 0x4a44bf
jmp 0x4a3c1b
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 8]
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0x58]
mov edi, dword [edx + 8]
push eax
push esi
push dword [edi + 0x20]
call fcn.0049f140
add esp, 0xc
movzx eax, byte [esp + 0x58]
cmp al, 0x4b
jne 0x4a4a71
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0xc8]
cmp dword [esi + 0x10], eax
jle 0x4a3c1b
lea ecx, [esp + 0x58]
mov edx, esi
call fcn.004a55f0
movzx eax, byte [esp + 0x58]
cmp al, 0x4b
jne 0x4a4a71
mov esi, dword [esp + 0x5c]
test esi, esi
je 0x4a44ab
cmp dword [esi], 0
jne 0x4a4480
mov eax, dword [esi + 4]
cmp eax, 6
jae 0x4a4b27
add esi, 8
jmp 0x4a4486
mov ecx, dword [edi + 4]
cmp ecx, 6
jae 0x4a4b29
add edi, 8
test ecx, ecx
jne 0x4a3cb7
xorps xmm0, xmm0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x3c], 0
movaps xmmword [esp + 0x140], xmm0
mov eax, dword [ebp + 0x1c]
mov esi, dword [eax + 8]
cmp esi, dword [eax]
mov eax, esi
jne 0x4a4598
mov ecx, dword [ebp + 0x1c]
mov edx, esi
call fcn.004a3940
mov eax, dword [ebp + 0x1c]
mov eax, dword [eax + 8]
mov ecx, dword [ebp + 0x1c]
movdqa xmm0, xmmword [esp + 0x140]
mov edi, dword [esp + 0x3c]
lea edx, [eax + eax*4]
inc eax
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x24], ebx
mov ecx, dword [ecx + 4]
movdqu xmmword [ecx + edx*8], xmm0
mov dword [ecx + edx*8 + 0x10], edi
mov edi, dword [esp + 0xdc]
mov dword [ecx + edx*8 + 0x14], edi
mov edi, dword [esp + 0x13c]
mov dword [ecx + edx*8 + 0x18], edi
mov edi, dword [esp + 0x28]
mov dword [ecx + edx*8 + 0x1c], edi
mov edi, dword [esp + 0x2c]
mov dword [ecx + edx*8 + 0x20], edi
mov edx, dword [ebp + 0x1c]
mov dword [edx + 8], eax
je 0x4a4694
mov ecx, dword [esp + 0x138]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, ebx
jae 0x4a46fa
mov edi, dword [esp + 0xf0]
xor edx, edx
mov cl, 0x13
xor ebx, ebx
xor esi, esi
mov byte [esp + 0x40], cl
mov byte [esp + 0x41], bl
mov word [esp + 0x42], dx
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x1c]
jmp 0x4a3c0a
mov eax, dword [edi + 4]
cmp eax, 6
jae 0x4a4b27
add edi, 8
mov edx, esi
mov esi, dword [esi + 8]
lea ecx, [esp + 0x58]
push eax
push edi
push dword [esi + 0x20]
call fcn.0049f140
add esp, 0xc
movzx eax, byte [esp + 0x58]
cmp al, 0x4b
jne 0x4a4b00
mov esi, dword [esp + 0x1c]
jmp 0x4a3c1b
lea eax, [esp + 0x60]
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
movq qword [esp + 0x48], xmm1
movq qword [esp + 0x40], xmm0
jmp 0x4a3c0a
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xbc]
or dword [esp + 0xb4], eax
je 0x4a484d
mov eax, ecx
or eax, edx
je 0x4a484d
mov eax, dword [esp + 0xd0]
mov ecx, dword [esp + 0x30]
cmp dword [esp + 0x34], eax
sbb ecx, dword [esp + 0xcc]
jae 0x4a3bd6
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx + 8]
cmp edx, dword [ecx]
jne 0x4a3b9a
call fcn.0049e140
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx + 8]
jmp 0x4a3b9a
mov edi, ebx
mov ebx, dword [ebp + 0x18]
add eax, edi
mov edx, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x100], ebx
mov ebx, dword [esp + 0x128]
mov dword [esp + 0x58], ebx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x100]
mov ebx, dword [ebp + 0x24]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0xa0]
mov dword [esp + 0x68], edx
mov edx, dword [esp + 0x9c]
mov word [esp + 0x6c], dx
mov edx, dword [esp + 0xf8]
mov word [esp + 0x6e], dx
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], ecx
movzx ecx, byte [esp + 0x57]
mov byte [esp + 0x78], cl
mov byte [esp + 0x7b], 0
mov word [esp + 0x79], 0
jmp 0x4a4799
mov eax, dword [ecx + 4]
mov edi, ecx
lea ecx, [edx + edx*2]
inc edx
movdqu xmmword [eax + ecx*8], xmm1
mov dword [eax + ecx*8 + 0x10], ebx
mov dword [eax + ecx*8 + 0x14], esi
mov dword [edi + 8], edx
lea ecx, [esp + 0x80]
lea edx, [esp + 0x58]
call fcn.004a1e50
mov eax, dword [esp + 0x80]
movdqu xmm1, xmmword [esp + 0x88]
mov ecx, eax
and cl, 3
cmp cl, 1
jne 0x4a4814
pshufd xmm2, xmm1, 0xee
pshufd xmm0, xmm1, 0x55
pshufd xmm3, xmm1, 0xff
movd ecx, xmm1
movd edi, xmm2
movd eax, xmm0
movd edx, xmm3
cmp ecx, edi
sbb eax, edx
jae 0x4a4799
mov ecx, dword [ebp + 0x20]
mov edx, dword [ecx + 8]
cmp edx, dword [ecx]
jne 0x4a4780
movdqa xmmword [esp + 0x100], xmm1
call fcn.0049e140
mov ecx, dword [ebp + 0x20]
movdqa xmm1, xmmword [esp + 0x100]
mov edx, dword [ecx + 8]
jmp 0x4a4780
cmp eax, 2
jne 0x4a3bd6
movd ecx, xmm1
cmp cl, 0x4b
je 0x4a3bd6
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x94]
mov edx, ecx
pshufd xmm0, xmm1, 0x55
mov bl, ch
movd edi, xmm0
shr edx, 0x10
jmp 0x4a4619
mov eax, dword [esp + 0xd4]
or dword [esp + 0xd8], eax
je 0x4a3bd6
or ecx, edx
je 0x4a3bd6
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov edx, eax
mov ebx, ecx
add edx, dword [esp + 0x120]
adc ebx, dword [esp + 0x11c]
cmp eax, edx
mov eax, ecx
sbb eax, ebx
jae 0x4a3bd6
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x100], edx
mov edx, dword [eax + 8]
cmp edx, dword [eax]
jne 0x4a48ae
mov ecx, dword [ebp + 0x20]
call fcn.0049e140
mov eax, dword [ebp + 0x20]
mov edx, dword [eax + 8]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x30]
lea ecx, [edx + edx*2]
inc edx
mov dword [eax + ecx*8 + 4], edi
mov edi, dword [esp + 0x34]
mov dword [eax + ecx*8], edi
mov dword [eax + ecx*8 + 0xc], ebx
mov edi, dword [esp + 0x100]
mov ebx, dword [ebp + 0x24]
mov dword [eax + ecx*8 + 8], edi
mov dword [eax + ecx*8 + 0x10], ebx
mov dword [eax + ecx*8 + 0x14], esi
mov ecx, dword [ebp + 0x20]
mov dword [ecx + 8], edx
jmp 0x4a3bd6
mov eax, dword [esp + 0xa4]
mov byte [eax], 0x4b
jmp 0x4a4b1f
movzx ecx, byte [esp + 0x5b]
mov edx, dword [esp + 0x64]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0xa4]
mov byte [esp + 0x82], cl
movzx ecx, word [esp + 0x59]
mov ah, byte [esp + 0x82]
mov word [esp + 0x80], cx
mov ecx, dword [esp + 0x5c]
movzx edi, word [esp + 0x80]
mov byte [ebx + 3], ah
mov word [ebx + 1], di
mov byte [ebx], al
mov dword [ebx + 4], ecx
mov dword [ebx + 0xc], edx
mov dword [ebx + 8], esi
jmp 0x4a4b1f
movzx ecx, byte [esp + 0x5b]
mov edi, dword [esp + 0xa4]
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x5c]
mov esi, dword [esp + 0x60]
mov byte [edi + 3], cl
movzx ecx, word [esp + 0x59]
mov word [edi + 1], cx
mov byte [edi], al
mov dword [edi + 4], edx
mov dword [edi + 0xc], ebx
mov dword [edi + 8], esi
jmp 0x4a4b1f
lea ecx, [esp + 0x41]
movsd xmm0, qword [ecx]
movsd xmm1, qword [ecx + 7]
jmp 0x4a4b0c
movsd xmm0, qword [esp + 0x59]
movsd xmm1, qword [esp + 0x60]
mov ecx, dword [esp + 0xa4]
movsd qword [ecx + 8], xmm1
movsd qword [ecx + 1], xmm0
mov byte [ecx], al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, eax
mov edx, 5
push 0x579f94
call fcn.0046a750
aad 3
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [eax + 4], cl
add byte [eax], al
out dx, eax
add al, 0
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add bl, dh
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
add al, byte [eax]
add byte [esi + 2], ah
add byte [eax], al
xchg ecx, eax
add eax, 0x2660000
add byte [eax], al
add al, 6
add byte [eax], al
xor byte [esi], al
add byte [eax], al
rol byte [esi], 0
add byte [esi], dl
or byte [eax], al
add byte [eax + ecx], ah
add byte [eax], al
and eax, dword [esi]
add byte [eax], al
and eax, dword [esi]
add byte [eax], al
xor cl, byte [eax]
add byte [eax], al
and eax, dword [esi]
add byte [eax], al
dec edx
or byte [eax], al
add byte [eax + 8], bl
add byte [eax], al
fild word [esi]
add byte [eax], al
fild word [esi]
add byte [eax], al
or byte [eax], al
add bh, bl
push es
add byte [eax], al
jg 0x4a4ccb
add byte [eax], al
out 8, al
add byte [eax], al
dec esi
sldt word [eax]
add byte [esi + 0xf], cl
add byte [eax], al
test byte [eax], 0
add byte [esi + 0xf], cl
add byte [eax], al
dec esi
sldt word [eax]
dec esi
sldt word [eax]
add eax, 0xcf000009
add al, 0
add byte [esi + 8], bh
add byte [eax], al
dec esi
sldt word [eax]
nop
or byte [eax], al
add byte [esi + 0xf], cl
add byte [eax], al
dec esi
sldt word [eax]
dec esi
sldt word [eax]
lodsd eax, dword [esi]
or byte [eax], al
add byte [esi + 0x2e], ah
nop dword [eax + eax]
nop