Function at 0x408930
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48fba0
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x70
mov eax, dword [0x4b000c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x78], esi
mov eax, dword [ebx + 8]
lea edi, [esi + 0xc]
mov dword [ebp - 0x7c], esi
mov dword [esi + 4], 0
mov dword [edi], 0
mov dword [ebp - 0x74], eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
mov dword [ebp - 4], 0
lea eax, [esi + 0x3c]
push 0xa0
mov dword [esi + 0x24], 0
mov dword [esi + 0x28], 0
push 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
push eax
mov dword [esi + 0x38], 0x3f800000
call fcn.0046e200
mov dword [esi + 0xdc], 0x3f800000
add esp, 0xc
mov dword [esi + 0x104], 0xa
mov dword [esi + 0x108], 0
mov dword [esi + 0x10c], 0
mov dword [esi + 0x110], 0
mov dword [esi + 0x114], 0
mov dword [esi + 0x118], 0
mov dword [esi + 0x11c], 0
mov dword [esi + 0x120], 0
mov dword [esi + 0x124], 0
mov dword [esi + 0x128], 0
mov dword [esi + 0x12c], 0
mov dword [esi + 0x130], 0
mov dword [esi + 0x134], 0
mov dword [esi + 0x138], 0
mov dword [esi + 0x13c], 0
mov dword [esi + 0x140], 0
mov dword [esi + 0x144], 0
mov dword [esi + 0x148], 0
mov dword [esi + 0x14c], 0
mov dword [esi + 0x150], 0
mov dword [esi + 0x154], 0
mov dword [esi + 0x158], 0
mov dword [esi + 0x15c], 0
mov dword [esi + 0x160], 0
mov dword [esi + 0x164], 0
mov dword [esi + 0x168], 0
mov dword [esi + 0x16c], 0
mov dword [esi + 0x170], 0
mov dword [esi + 0x174], 0
mov dword [esi + 0x178], 0
mov dword [esi + 0x17c], 0
mov dword [esi + 0x180], 9
mov dword [esi + 0x188], 0
mov dword [esi + 0xdc], 0x3f800000
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], 0
mov dword [esi + 0xec], 0
mov dword [esi + 0xf0], 0
mov dword [esi + 0xf4], 0
mov dword [esi + 0xf8], 0
mov dword [esi + 0xfc], 0
mov dword [esi + 0x100], 0
mov dword [esi + 0x184], 0
mov dword [esi + 0x190], 0
mov dword [esi + 0x194], 0
mov dword [esi + 0x198], 0
mov dword [esi + 0x19c], 0
mov dword [esi + 0x1a0], 0
mov dword [esi + 0x1a4], 0
mov dword [esi + 0x1a8], 0
mov dword [esi + 0x1ac], 0
mov dword [esi + 0x1b0], 0
mov dword [esi + 0x1b4], 0
mov word [esi + 0x1b8], 0
mov byte [esi + 0x1ba], 0
mov dword [esi + 0x1bc], 0
mov dword [esi + 0x1c0], 0
mov word [esi + 0x1c4], 0
mov dword [esi + 0x1c8], 0xffffff
mov dword [esi + 0x1cc], 0xffffff
mov dword [esi + 0x1d0], 0xffffff
mov dword [esi + 0x1d4], 0xffffff
mov dword [esi + 0x1d8], 0
mov byte [esi + 0x1dc], 0
mov word [esi + 0x1e4], 0
mov dword [esi + 0x1e8], 0
mov dword [esi + 0x1ec], 0
mov dword [esi + 0x1f0], 0
mov dword [esi + 0x1f4], 0x3f800000
mov dword [esi + 0x1f8], 0
mov dword [esi + 0x1fc], 0x258
mov dword [esi + 0x424], 0
mov dword [esi + 0x428], 0x77073096
mov dword [esi + 0x42c], 0xee0e612c
mov dword [esi + 0x430], 0x990951ba
mov dword [esi + 0x434], 0x76dc419
mov dword [esi + 0x438], 0x706af48f
mov dword [esi + 0x43c], 0xe963a535
mov dword [esi + 0x440], 0x9e6495a3
mov dword [esi + 0x444], 0xedb8832
mov dword [esi + 0x448], 0x79dcb8a4
mov dword [esi + 0x44c], 0xe0d5e91e
mov dword [esi + 0x450], 0x97d2d988
mov dword [esi + 0x454], 0x9b64c2b
mov dword [esi + 0x458], 0x7eb17cbd
mov dword [esi + 0x45c], 0xe7b82d07
mov dword [esi + 0x460], 0x90bf1d91
mov dword [esi + 0x464], 0x1db71064
mov dword [esi + 0x468], 0x6ab020f2
mov dword [esi + 0x46c], 0xf3b97148
mov dword [esi + 0x470], 0x84be41de
mov dword [esi + 0x474], 0x1adad47d
mov dword [esi + 0x478], 0x6ddde4eb
mov dword [esi + 0x47c], 0xf4d4b551
mov dword [esi + 0x480], 0x83d385c7
mov dword [esi + 0x484], 0x136c9856
mov dword [esi + 0x488], 0x646ba8c0
mov dword [esi + 0x48c], 0xfd62f97a
mov dword [esi + 0x490], 0x8a65c9ec
mov dword [esi + 0x494], 0x14015c4f
mov dword [esi + 0x498], 0x63066cd9
mov dword [esi + 0x49c], 0xfa0f3d63
mov dword [esi + 0x4a0], 0x8d080df5
mov dword [esi + 0x4a4], 0x3b6e20c8
mov dword [esi + 0x4a8], 0x4c69105e
mov dword [esi + 0x4ac], 0xd56041e4
mov dword [esi + 0x4b0], 0xa2677172
mov dword [esi + 0x4b4], 0x3c03e4d1
mov dword [esi + 0x4b8], 0x4b04d447
mov dword [esi + 0x4bc], 0xd20d85fd
mov dword [esi + 0x4c0], 0xa50ab56b
mov dword [esi + 0x4c4], 0x35b5a8fa
mov dword [esi + 0x4c8], 0x42b2986c
mov dword [esi + 0x4cc], 0xdbbbc9d6
mov dword [esi + 0x4d0], 0xacbcf940
mov dword [esi + 0x4d4], 0x32d86ce3
mov dword [esi + 0x4d8], 0x45df5c75
mov dword [esi + 0x4dc], 0xdcd60dcf
mov dword [esi + 0x4e0], 0xabd13d59
mov dword [esi + 0x4e4], 0x26d930ac
mov dword [esi + 0x4e8], 0x51de003a
mov dword [esi + 0x4ec], 0xc8d75180
mov dword [esi + 0x4f0], 0xbfd06116
mov dword [esi + 0x4f4], 0x21b4f4b5
mov dword [esi + 0x4f8], 0x56b3c423
mov dword [esi + 0x4fc], 0xcfba9599
mov dword [esi + 0x500], 0xb8bda50f
mov dword [esi + 0x504], 0x2802b89e
mov dword [esi + 0x508], 0x5f058808
mov dword [esi + 0x50c], 0xc60cd9b2
mov dword [esi + 0x510], 0xb10be924
mov dword [esi + 0x514], 0x2f6f7c87
mov dword [esi + 0x518], 0x58684c11
mov dword [esi + 0x51c], 0xc1611dab
mov dword [esi + 0x520], 0xb6662d3d
mov dword [esi + 0x524], 0x76dc4190
mov dword [esi + 0x528], 0x1db7106
mov dword [esi + 0x52c], 0x98d220bc
mov dword [esi + 0x530], 0xefd5102a
mov dword [esi + 0x534], 0x71b18589
mov dword [esi + 0x538], 0x6b6b51f
mov dword [esi + 0x53c], 0x9fbfe4a5
mov dword [esi + 0x540], 0xe8b8d433
mov dword [esi + 0x544], 0x7807c9a2
mov dword [esi + 0x548], 0xf00f934
mov dword [esi + 0x54c], 0x9609a88e
mov dword [esi + 0x550], 0xe10e9818
mov dword [esi + 0x554], 0x7f6a0dbb
mov dword [esi + 0x558], 0x86d3d2d
mov dword [esi + 0x55c], 0x91646c97
mov dword [esi + 0x560], 0xe6635c01
mov dword [esi + 0x564], 0x6b6b51f4
mov dword [esi + 0x568], 0x1c6c6162
mov dword [esi + 0x56c], 0x856530d8
mov dword [esi + 0x570], 0xf262004e
mov dword [esi + 0x574], 0x6c0695ed
mov dword [esi + 0x578], 0x1b01a57b
mov dword [esi + 0x57c], 0x8208f4c1
mov dword [esi + 0x580], 0xf50fc457
mov dword [esi + 0x584], 0x65b0d9c6
mov dword [esi + 0x588], 0x12b7e950
mov dword [esi + 0x58c], 0x8bbeb8ea
mov dword [esi + 0x590], 0xfcb9887c
mov dword [esi + 0x594], 0x62dd1ddf
mov dword [esi + 0x598], 0x15da2d49
mov dword [esi + 0x59c], 0x8cd37cf3
mov dword [esi + 0x5a0], 0xfbd44c65
mov dword [esi + 0x5a4], 0x4db26158
mov dword [esi + 0x5a8], 0x3ab551ce
mov dword [esi + 0x5ac], 0xa3bc0074
mov dword [esi + 0x5b0], 0xd4bb30e2
mov dword [esi + 0x5b4], 0x4adfa541
mov dword [esi + 0x5b8], 0x3dd895d7
mov dword [esi + 0x5bc], 0xa4d1c46d
mov dword [esi + 0x5c0], 0xd3d6f4fb
mov dword [esi + 0x5c4], 0x4369e96a
mov dword [esi + 0x5c8], 0x346ed9fc
mov dword [esi + 0x5cc], 0xad678846
mov dword [esi + 0x5d0], 0xda60b8d0
mov dword [esi + 0x5d4], 0x44042d73
mov dword [esi + 0x5d8], 0x33031de5
mov dword [esi + 0x5dc], 0xaa0a4c5f
mov dword [esi + 0x5e0], 0xdd0d7cc9
mov dword [esi + 0x5e4], 0x5005713c
mov dword [esi + 0x5e8], 0x270241aa
mov dword [esi + 0x5ec], 0xbe0b1010
mov dword [esi + 0x5f0], 0xc90c2086
mov dword [esi + 0x5f4], 0x5768b525
mov dword [esi + 0x5f8], 0x206f85b3
mov dword [esi + 0x5fc], 0xb966d409
mov dword [esi + 0x600], 0xce61e49f
mov dword [esi + 0x604], 0x5edef90e
mov dword [esi + 0x608], 0x29d9c998
mov dword [esi + 0x60c], 0xb0d09822
mov dword [esi + 0x610], 0xc7d7a8b4
mov dword [esi + 0x614], 0x59b33d17
mov dword [esi + 0x618], 0x2eb40d81
mov dword [esi + 0x61c], 0xb7bd5c3b
mov dword [esi + 0x620], 0xc0ba6cad
mov dword [esi + 0x624], 0xedb88320
mov dword [esi + 0x628], 0x9abfb3b6
mov dword [esi + 0x62c], 0x3b6e20c
mov dword [esi + 0x630], 0x74b1d29a
mov dword [esi + 0x634], 0xead54739
mov dword [esi + 0x638], 0x9dd277af
mov dword [esi + 0x63c], 0x4db2615
mov dword [esi + 0x640], 0x73dc1683
mov dword [esi + 0x644], 0xe3630b12
mov dword [esi + 0x648], 0x94643b84
mov dword [esi + 0x64c], 0xd6d6a3e
mov dword [esi + 0x650], 0x7a6a5aa8
mov dword [esi + 0x654], 0xe40ecf0b
mov dword [esi + 0x658], 0x9309ff9d
mov dword [esi + 0x65c], 0xa00ae27
mov dword [esi + 0x660], 0x7d079eb1
mov dword [esi + 0x664], 0xf00f9344
mov dword [esi + 0x668], 0x8708a3d2
mov dword [esi + 0x66c], 0x1e01f268
mov dword [esi + 0x670], 0x6906c2fe
mov dword [esi + 0x674], 0xf762575d
mov dword [esi + 0x678], 0x806567cb
mov dword [esi + 0x67c], 0x196c3671
mov dword [esi + 0x680], 0x6e6b06e7
mov dword [esi + 0x684], 0xfed41b76
mov dword [esi + 0x688], 0x89d32be0
mov dword [esi + 0x68c], 0x10da7a5a
mov dword [esi + 0x690], 0x67dd4acc
mov dword [esi + 0x694], 0xf9b9df6f
mov dword [esi + 0x698], 0x8ebeeff9
mov dword [esi + 0x69c], 0x17b7be43
mov dword [esi + 0x6a0], 0x60b08ed5
mov dword [esi + 0x6a4], 0xd6d6a3e8
mov dword [esi + 0x6a8], 0xa1d1937e
mov dword [esi + 0x6ac], 0x38d8c2c4
mov dword [esi + 0x6b0], 0x4fdff252
mov dword [esi + 0x6b4], 0xd1bb67f1
mov dword [esi + 0x6b8], 0xa6bc5767
mov dword [esi + 0x6bc], 0x3fb506dd
mov dword [esi + 0x6c0], 0x48b2364b
mov dword [esi + 0x6c4], 0xd80d2bda
mov dword [esi + 0x6c8], 0xaf0a1b4c
mov dword [esi + 0x6cc], 0x36034af6
mov dword [esi + 0x6d0], 0x41047a60
mov dword [esi + 0x6d4], 0xdf60efc3
mov dword [esi + 0x6d8], 0xa867df55
mov dword [esi + 0x6dc], 0x316e8eef
mov dword [esi + 0x6e0], 0x4669be79
mov dword [esi + 0x6e4], 0xcb61b38c
mov dword [esi + 0x6e8], 0xbc66831a
mov dword [esi + 0x6ec], 0x256fd2a0
mov dword [esi + 0x6f0], 0x5268e236
mov dword [esi + 0x6f4], 0xcc0c7795
mov dword [esi + 0x6f8], 0xbb0b4703
mov dword [esi + 0x6fc], 0x220216b9
mov dword [esi + 0x700], 0x5505262f
mov dword [esi + 0x704], 0xc5ba3bbe
mov dword [esi + 0x708], 0xb2bd0b28
mov dword [esi + 0x70c], 0x2bb45a92
mov dword [esi + 0x710], 0x5cb36a04
mov dword [esi + 0x714], 0xc2d7ffa7
mov dword [esi + 0x718], 0xb5d0cf31
mov dword [esi + 0x71c], 0x2cd99e8b
mov dword [esi + 0x720], 0x5bdeae1d
mov dword [esi + 0x724], 0x9b64c2b0
mov dword [esi + 0x728], 0xec63f226
mov dword [esi + 0x72c], 0x756aa39c
mov dword [esi + 0x730], 0x26d930a
mov dword [esi + 0x734], 0x9c0906a9
mov dword [esi + 0x738], 0xeb0e363f
mov dword [esi + 0x73c], 0x72076785
mov dword [esi + 0x740], 0x5005713
mov dword [esi + 0x744], 0x95bf4a82
mov dword [esi + 0x748], 0xe2b87a14
mov dword [esi + 0x74c], 0x7bb12bae
mov dword [esi + 0x750], 0xcb61b38
mov dword [esi + 0x754], 0x92d28e9b
mov dword [esi + 0x758], 0xe5d5be0d
mov dword [esi + 0x75c], 0x7cdcefb7
mov dword [esi + 0x760], 0xbdbdf21
mov dword [esi + 0x764], 0x86d3d2d4
mov dword [esi + 0x768], 0xf1d4e242
mov dword [esi + 0x76c], 0x68ddb3f8
mov dword [esi + 0x770], 0x1fda836e
mov dword [esi + 0x774], 0x81be16cd
mov dword [esi + 0x778], 0xf6b9265b
mov dword [esi + 0x77c], 0x6fb077e1
mov dword [esi + 0x780], 0x18b74777
mov dword [esi + 0x784], 0x88085ae6
mov dword [esi + 0x788], 0xff0f6a70
mov dword [esi + 0x78c], 0x66063bca
mov dword [esi + 0x790], 0x11010b5c
mov dword [esi + 0x794], 0x8f659eff
mov dword [esi + 0x798], 0xf862ae69
mov dword [esi + 0x79c], 0x616bffd3
mov dword [esi + 0x7a0], 0x166ccf45
mov dword [esi + 0x7a4], 0xa00ae278
mov dword [esi + 0x7a8], 0xd70dd2ee
mov dword [esi + 0x7ac], 0x4e048354
mov dword [esi + 0x7b0], 0x3903b3c2
mov dword [esi + 0x7b4], 0xa7672661
mov dword [esi + 0x7b8], 0xd06016f7
mov eax, 0x200e
mov dword [esi + 0x7bc], 0x4969474d
mov dword [esi + 0x7c0], 0x3e6e77db
mov dword [esi + 0x7c4], 0xaed16a4a
mov dword [esi + 0x7c8], 0xd9d65adc
mov dword [esi + 0x7cc], 0x40df0b66
mov dword [esi + 0x7d0], 0x37d83bf0
mov dword [esi + 0x7d4], 0xa9bcae53
mov dword [esi + 0x7d8], 0xdebb9ec5
mov ecx, dword [ebp - 0x74]
mov dword [esi + 0x7dc], 0x47b2cf7f
mov dword [esi + 0x7e0], 0x30b5ffe9
mov dword [esi + 0x7e4], 0xbdbdf21c
mov dword [esi + 0x7e8], 0xcabac28a
mov dword [esi + 0x7ec], 0x53b39330
mov dword [esi + 0x7f0], 0x24b4a3a6
mov dword [esi + 0x7f4], 0xbad03605
mov dword [esi + 0x7f8], 0xcdd70693
mov dword [esi + 0x7fc], 0x54de5729
mov dword [esi + 0x800], 0x23d967bf
mov dword [esi + 0x804], 0xb3667a2e
mov dword [esi + 0x808], 0xc4614ab8
mov dword [esi + 0x80c], 0x5d681b02
mov dword [esi + 0x810], 0x2a6f2b94
mov dword [esi + 0x814], 0xb40bbe37
mov dword [esi + 0x818], 0xc30c8ea1
mov dword [esi + 0x81c], 0x5a05df1b
mov dword [esi + 0x820], 0x2d02ef8d
cmp word [ecx + 6], ax
jne 0x40986d
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x4097a6
cmp eax, 0xffffffff
je 0x4097a6
cmp eax, 1
jne 0x40986d
push 0xb
push str.Joy_Con__L_
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409766
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409738
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x40972e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x28], 1
jmp 0x409863
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x40979a
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409790
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 1
jmp 0x409863
push 0xb
push str.Joy_Con__R_
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409828
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409804
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x4097fa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
jmp 0x40985c
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x40985c
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409852
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 2
mov ecx, dword [ebp - 0x74]
mov byte [esi + 0x1c0], 1
movzx eax, word [ecx + 6]
mov ecx, 0x2006
cmp ax, cx
jne 0x40994b
push 0xb
push str.Joy_Con__L_
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x40990b
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x4098dd
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x4098d3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x28], 1
jmp 0x409af0
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x40993f
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409935
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 1
jmp 0x409af0
mov ecx, 0x2007
cmp ax, cx
jne 0x409a25
push 0xb
push str.Joy_Con__R_
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x4099e5
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x4099b7
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x4099ad
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x28], 2
jmp 0x409af0
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x409a19
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409a0f
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 2
jmp 0x409af0
mov ecx, 0x2009
cmp ax, cx
jne 0x409af0
push 0xe
push str.Pro_Controller
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409ab5
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409a91
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x409a87
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
jmp 0x409ae9
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x409ae9
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409adf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 3
mov eax, dword [ebp - 0x74]
mov ecx, 0x81f
movzx eax, word [eax + 6]
cmp ax, cx
je 0x409b25
mov ecx, 0x5c4
cmp ax, cx
je 0x409b25
mov ecx, 0xba0
cmp ax, cx
je 0x409b25
mov edx, 0x9cc
mov ecx, eax
cmp ax, dx
jne 0x409c05
push 0xb
push str.DualShock_4
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409ba7
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409b83
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x409b79
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
jmp 0x409bdb
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x409bdb
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409bd1
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov ecx, dword [ebp - 0x74]
mov eax, 0x81f
mov dword [esi + 0x28], 3
mov dword [esi + 0x1bc], 1
cmp word [ecx + 6], ax
setne al
mov byte [esi + 0x1c0], al
movzx ecx, word [ecx + 6]
mov edx, 0xe20
movzx eax, cx
cmp cx, dx
jne 0x409ceb
push 0xb
push str.DualShock_4
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409c98
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409c74
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x409c6a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
jmp 0x409ccc
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x409ccc
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409cc2
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov eax, dword [ebp - 0x74]
mov dword [esi + 0x28], 3
mov dword [esi + 0x1bc], 1
mov byte [esi + 0x1c0], 1
movzx eax, word [eax + 6]
mov ecx, 0xce6
cmp ax, cx
jne 0x409dc7
push 9
push str.DualSense
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 0xf
call fcn.0040dfb0
lea eax, [ebp - 0x70]
cmp edi, eax
je 0x409d7b
mov ecx, dword [edi + 0x14]
cmp ecx, 0x10
jb 0x409d57
mov eax, dword [edi]
inc ecx
cmp ecx, 0x1000
jb 0x409d4d
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
mov eax, edx
push ecx
push eax
call fcn.0046b385
add esp, 8
movups xmm0, xmmword [ebp - 0x70]
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x60]
movq qword [edi + 0x10], xmm0
jmp 0x409daf
mov edx, dword [ebp - 0x5c]
cmp edx, 0x10
jb 0x409daf
mov ecx, dword [ebp - 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x409da5
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x409f5c
push edx
push ecx
call fcn.0046b385
add esp, 8
mov dword [esi + 0x28], 3
mov dword [esi + 0x1bc], 2
mov byte [esi + 0x1c0], 1
mov edi, dword [ebp - 0x74]
push dword [edi + 8]
call fcn.00475fe1
mov dword [esi + 8], eax
add esp, 4
mov eax, dword [ebx + 0xc]
mov dword [esi + 4], eax
mov ecx, dword [edi]
call fcn.0046aa20
mov edi, eax
mov dword [esi], edi
mov eax, dword [esi + 0x1bc]
cmp eax, 1
jne 0x409e80
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.0046e200
add esp, 0xc
mov byte [ebp - 0x58], 5
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x5c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
push eax
lea eax, [ebp - 0x74]
push eax
push 0x29
lea eax, [ebp - 0x58]
push eax
push 0x29
push eax
push 0xb0192
push dword [edi]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x409e49
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x409e5f
push 1
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x409e66
mov ecx, edi
call fcn.0046a3a0
mov ecx, dword [esi]
lea edx, [ebp - 0x58]
push 0x64
push 0x40
call fcn.0046ac40
add esp, 8
cmp byte [ebp - 0x58], 0x11
jmp 0x409f0c
cmp eax, 2
jne 0x409f15
push 0x40
lea eax, [ebp - 0x58]
push 0
push eax
call fcn.0046e200
add esp, 0xc
mov byte [ebp - 0x58], 5
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x5c], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x6c], xmm0
push eax
lea eax, [ebp - 0x74]
push eax
push 0x29
lea eax, [ebp - 0x58]
push eax
push 0x29
push eax
push 0xb0192
push dword [edi]
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x409eda
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x409ef0
push 1
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x6c]
push eax
push dword [edi]
call dword [sym.imp.KERNEL32.dll_GetOverlappedResult]
test eax, eax
jne 0x409ef7
mov ecx, edi
call fcn.0046a3a0
mov ecx, dword [esi]
lea edx, [ebp - 0x58]
push 0x64
push 0x40
call fcn.0046ac40
add esp, 8
cmp byte [ebp - 0x58], 0x31
jne 0x409f15
mov byte [esi + 0x1c0], 0
lea eax, [esi + 0x200]
mov ecx, 0x10
lea eax, [eax + 0x14]
xorps xmm0, xmm0
movups xmmword [eax - 0x14], xmm0
mov dword [eax - 4], 0
sub ecx, 1
jne 0x409f20
cmp dword [esi], ecx
je 0x409f61
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0046ad4d
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 8
call fcn.0047681e
push 0
push 0
call fcn.0046e35a
int3