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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
test edi, edi
je 0x417ce8
test esi, esi
je 0x417ce8
cmp dword [esi + 0x70], 0
jl 0x417ce8
mov ecx, dword [edi + 0x264]
lea ebx, [edi + 0x264]
test ecx, ecx
je 0x417ce8
cmp dword [edi + 0x738], 0
je 0x417ce8
mov eax, dword [esi + 0x28]
inc eax
mov dword [edi], eax
lea eax, [esi + 0x75]
push 0x14a
push eax
push ecx
call fcn.00471010
mov eax, dword [ebx]
add esp, 0xc
mov byte [eax + 0x149], 0
mov ecx, dword [ebx]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4175b0
sub ecx, edx
lea eax, [ecx + 1]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x48c]
mov dword [ebp - 8], eax
test eax, eax
je 0x417647
mov ecx, ebx
call fcn.00413180
mov eax, dword [edi + 0x94]
mov dword [ebp - 4], eax
test ebx, ebx
je 0x41760b
push 0x4d0
lea eax, [edi + 0x268]
push 0
push eax
call fcn.00469c30
lea eax, [ebx + 0xc]
mov dword [ebx + 4], 0
mov dword [ebx], eax
add esp, 0xc
mov eax, dword [ebp - 4]
mov dword [ebx + 0x4d0], eax
mov ecx, dword [ebp - 8]
mov edx, ebx
call fcn.0040f670
cmp eax, 1
je 0x417623
mov ecx, ebx
call fcn.00413180
jmp 0x417630
or byte [edi + 0xf3], 1
mov dword [edi + 0x5dc], edi
lea eax, [edi + 0x738]
mov dword [edi + 0x5dc], edi
mov dword [ebp - 4], eax
lea ebx, [edi + 0x738]
jmp 0x417650
lea ebx, [edi + 0x738]
mov dword [ebp - 4], ebx
push 0x14a
lea eax, [esi + 0x1bf]
push eax
push dword [ebx]
call fcn.00471010
mov eax, dword [ebx]
add esp, 0xc
mov byte [eax + 0x149], 0
mov ecx, dword [ebx]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x417674
sub ecx, edx
lea eax, [ecx + 1]
mov dword [ebx + 8], eax
mov eax, dword [esi + 0x490]
mov dword [ebp - 0xc], eax
test eax, eax
je 0x4176ec
mov ecx, ebx
call fcn.00413180
mov eax, dword [edi + 0x94]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
test eax, eax
je 0x4176c8
push 0x4d4
push 0
push eax
call fcn.00469c30
mov ecx, dword [ebp - 4]
add esp, 0xc
lea eax, [ecx + 0xc]
mov dword [ecx], eax
mov eax, dword [ebp - 8]
mov dword [ecx + 0x4d0], eax
mov ecx, dword [ebp - 0xc]
mov edx, ebx
call fcn.0040f670
cmp eax, 1
je 0x4176e0
mov ecx, ebx
call fcn.00413180
jmp 0x4176e6
mov dword [edi + 0xab0], edi
mov dword [edi + 0xab0], edi
movups xmm0, xmmword [esi + 0x320]
movups xmmword [edi + 0xf4], xmm0
movups xmm0, xmmword [esi + 0x330]
movups xmmword [edi + 0x104], xmm0
mov eax, dword [esi + 0x340]
mov dword [edi + 4], eax
mov ecx, dword [esi + 0x6c]
test ecx, ecx
je 0x417740
mov eax, dword [esi + 0x70]
cmp eax, 0x14a
jge 0x417740
push eax
push ecx
lea eax, [edi + 0x114]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x70]
add esp, 0xc
mov byte [eax + edi + 0x114], 0
jmp 0x417747
mov byte [edi + 0x114], 0
cmp dword [esi + 0x3d4], 0
jle 0x417787
mov edx, dword [esi + 0x3d0]
mov al, byte [edx + 1]
movzx ecx, al
cmp al, 0x20
jb 0x417765
mov ecx, 0x20
movzx eax, byte [edx]
mov dword [edi + 0x40], eax
mov dword [edi + 0x3c], ecx
mov eax, dword [esi + 0x3d0]
push ecx
add eax, 2
push eax
lea eax, [edi + 0x1c]
push eax
call fcn.0046ae20
add esp, 0xc
jmp 0x41778e
mov dword [edi + 0x3c], 0
cmp dword [esi + 0x3dc], 0
jle 0x4177ce
mov edx, dword [esi + 0x3d8]
mov al, byte [edx + 1]
movzx ecx, al
cmp al, 0x20
jb 0x4177ac
mov ecx, 0x20
movzx eax, byte [edx]
mov dword [edi + 0x68], eax
mov dword [edi + 0x64], ecx
mov eax, dword [esi + 0x3d8]
push ecx
add eax, 2
push eax
lea eax, [edi + 0x44]
push eax
call fcn.0046ae20
add esp, 0xc
jmp 0x4177d5
mov dword [edi + 0x64], 0
cmp dword [esi], 0
je 0x41780f
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x41780f
call fcn.004439a0
mov ecx, eax
mov dword [edi + 0x7c], ecx
test ecx, ecx
je 0x417837
mov eax, dword [esi + 0x1c]
mov dword [edi + 0x84], eax
mov eax, dword [esi + 4]
mov dword [edi + 0x80], eax
push dword [esi + 4]
push dword [esi]
push ecx
call fcn.0046ae20
add esp, 0xc
xor ebx, ebx
cmp dword [esi + 0x68], 0
je 0x417859
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x417859
cmp ecx, 0x200
ja 0x417859
call fcn.004439a0
mov dword [edi + 0x6c], eax
test eax, eax
jne 0x41783e
lea ebx, [eax - 0x7d]
jmp 0x417859
mov ebx, 0xffffff83
jmp 0x417811
push dword [esi + 0x14]
push dword [esi + 0x68]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x14]
add esp, 0xc
mov dword [edi + 0x70], eax
mov eax, dword [esi + 0x18]
mov dword [edi + 0x74], eax
cmp dword [esi + 0x310], 0
je 0x4178a9
mov edx, dword [esi + 0x318]
test edx, edx
je 0x4178a9
push dword [edi + 0x94]
lea ecx, [edi + 0x90]
push 0
call fcn.0043d760
add esp, 8
test eax, eax
jne 0x4178a4
push dword [esi + 0x318]
mov eax, dword [edi + 0x90]
push dword [esi + 0x310]
push dword [eax]
call fcn.0046ae20
add esp, 0xc
jmp 0x4178a9
mov ebx, 0xffffff83
mov eax, dword [esi + 0x2c]
lea ecx, [edi + 0x78]
mov dword [ecx], eax
mov edx, dword [esi + 0x30]
and byte [esi + 0x4dc], 0xbf
push ecx
push 1
call fcn.00417460
add esp, 8
test eax, eax
jne 0x417cdc
mov edx, dword [esi + 0x34]
push ecx
push 4
lea ecx, [edi + 0x78]
call fcn.00417460
add esp, 8
test eax, eax
jne 0x417cdc
mov eax, dword [edi + 0x78]
mov dword [edi + 0x88], eax
movzx ecx, byte [esi + 0x4dc]
mov al, byte [edi + 0x99]
shr cl, 4
xor cl, al
and cl, 1
xor cl, al
mov byte [edi + 0x99], cl
movzx eax, byte [esi + 0x3a0]
mov dword [edi + 0xc4], eax
mov ax, word [esi + 0x3a4]
mov word [edi + 0xc8], ax
mov al, byte [edi + 0xf1]
mov cl, byte [esi + 0x4dd]
shr cl, 1
xor cl, al
and cl, 1
xor cl, al
mov byte [edi + 0xf1], cl
movzx eax, byte [esi + 0x4de]
shr al, 1
xor al, cl
and al, 2
xor al, cl
mov byte [edi + 0xf1], al
cmp dword [esi + 0x358], 0
je 0x4179a2
mov ecx, dword [esi + 0x35c]
test ecx, ecx
jle 0x4179a2
call fcn.004439a0
mov dword [edi + 0xb0], eax
test eax, eax
je 0x41799d
push dword [esi + 0x35c]
push dword [esi + 0x358]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x35c]
add esp, 0xc
mov dword [edi + 0xcc], eax
jmp 0x4179a2
mov ebx, 0xffffff83
cmp dword [esi + 0x360], 0
je 0x4179ec
mov ecx, dword [esi + 0x364]
test ecx, ecx
jle 0x4179ec
call fcn.004439a0
mov dword [edi + 0xb4], eax
test eax, eax
je 0x4179e7
push dword [esi + 0x364]
push dword [esi + 0x360]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x364]
add esp, 0xc
mov dword [edi + 0xd0], eax
jmp 0x4179ec
mov ebx, 0xffffff83
mov al, byte [edi + 0xf1]
mov cl, byte [esi + 0x4dd]
xor cl, al
and cl, 4
xor cl, al
mov byte [edi + 0xf1], cl
movzx eax, byte [esi + 0x4de]
xor al, cl
and al, 8
xor al, cl
mov byte [edi + 0xf1], al
cmp dword [esi + 0x350], 0
je 0x417a62
mov ecx, dword [esi + 0x354]
test ecx, ecx
jle 0x417a62
call fcn.004439a0
mov dword [edi + 0xb8], eax
test eax, eax
je 0x417a5d
push dword [esi + 0x354]
push dword [esi + 0x350]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x354]
add esp, 0xc
mov dword [edi + 0xd4], eax
jmp 0x417a62
mov ebx, 0xffffff83
mov cl, byte [esi + 0x4dd]
lea edx, [edi + 0xf2]
shr cl, 2
xor cl, byte [edx]
and cl, 2
xor cl, byte [edx]
mov byte [edx], cl
mov al, byte [esi + 0x4de]
shr al, 2
xor al, cl
and al, 4
xor al, cl
mov byte [edx], al
mov cl, byte [esi + 0x4dc]
shr cl, 2
xor cl, al
and cl, 8
xor cl, al
mov byte [edx], cl
mov al, byte [esi + 0x4dd]
shr al, 3
xor al, cl
and al, 0x10
xor al, cl
mov byte [edx], al
mov dl, byte [esi + 0x4de]
shr dl, 1
xor dl, al
and dl, 0x20
xor dl, al
mov byte [edi + 0xf2], dl
mov cl, byte [esi + 0x4dc]
shl cl, 4
xor cl, dl
and cl, 0x40
xor cl, dl
lea edx, [edi + 0xf2]
mov byte [edi + 0xf2], cl
mov al, byte [esi + 0x4de]
xor cl, al
and cl, 0x7f
xor cl, al
mov byte [edi + 0xf2], cl
mov ecx, dword [esi + 0x3bc]
test ecx, ecx
je 0x417b92
cmp dword [esi + 0x3c0], 0
lea edx, [edi + 0xf2]
je 0x417b92
mov eax, dword [esi + 0x3b4]
test eax, eax
je 0x417b87
cmp ecx, eax
jbe 0x417b87
mov ecx, dword [esi + 0x3b8]
add eax, ecx
cmp dword [esi + 0x3bc], eax
jae 0x417b87
call fcn.004439a0
mov dword [edi + 0xa4], eax
test eax, eax
je 0x417b87
push dword [esi + 0x3b8]
push dword [esi + 0x3b4]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x3b8]
add esp, 0xc
mov dword [edi + 0xdc], eax
mov eax, dword [edi + 0xa4]
sub eax, dword [esi + 0x3b4]
add eax, dword [esi + 0x3bc]
mov dword [edi + 0xa0], eax
mov eax, dword [esi + 0x3c0]
mov dword [edi + 0xd8], eax
jmp 0x417b8c
mov ebx, 0xffffff83
lea edx, [edi + 0xf2]
movzx ecx, byte [esi + 0x4dc]
movzx eax, byte [edi + 0xf1]
and cl, 0xfe
shl cl, 6
and al, 0x7f
or cl, al
mov byte [edi + 0xf1], cl
movzx ecx, byte [esi + 0x4df]
shr cl, 1
xor cl, byte [edx]
and cl, 1
xor byte [edx], cl
cmp dword [esi + 0x3c4], 0
je 0x417c0a
mov ecx, dword [esi + 0x3c8]
test ecx, ecx
je 0x417c0a
call fcn.004439a0
mov dword [edi + 0xa8], eax
test eax, eax
je 0x417c05
push dword [esi + 0x3c8]
push dword [esi + 0x3c4]
push eax
call fcn.0046ae20
mov eax, dword [esi + 0x3c8]
add esp, 0xc
mov dword [edi + 0xe0], eax
jmp 0x417c0a
mov ebx, 0xffffff83
mov al, byte [edi + 0xf1]
mov cl, byte [esi + 0x4dc]
shr cl, 3
xor cl, al
and cl, 0x10
xor cl, al
mov byte [edi + 0xf1], cl
movzx eax, byte [esi + 0x4df]
shl al, 3
xor al, cl
and al, 0x20
xor al, cl
mov byte [edi + 0xf1], al
cmp dword [esi + 0x3a8], 0
je 0x417cbb
mov ecx, dword [esi + 0x3ac]
test ecx, ecx
je 0x417cbb
call fcn.004439a0
mov dword [edi + 0xac], eax
test eax, eax
je 0x417cb6
push dword [esi + 0x3ac]
push dword [esi + 0x3a8]
push eax
call fcn.0046ae20
movzx eax, byte [esi + 0x3a6]
add esp, 0xc
mov byte [edi + 0xe4], al
mov eax, dword [esi + 0x3ac]
mov dword [edi + 0xe8], eax
mov cl, byte [esi + 0x4df]
mov al, byte [edi + 0xf1]
shl cl, 3
xor cl, al
and cl, 0x40
xor cl, al
mov byte [edi + 0xf1], cl
mov eax, dword [esi + 0x3b0]
mov dword [edi + 0xec], eax
jmp 0x417cbb
mov ebx, 0xffffff83
mov cl, byte [esi + 0x494]
mov eax, ebx
mov byte [edi + 0xf0], cl
mov ecx, dword [esi + 0x3cc]
mov dword [edi + 0x8c], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff83
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xffffff53
pop ebx
mov esp, ebp
pop ebp
ret