Function at 0x4eb050
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x68c9e8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x18
mov al, byte [esp + 0x2c]
push ebx
push ebp
push esi
mov ebx, ecx
xor ebp, ebp
push edi
push ebp
lea ecx, [esp + 0x1c]
mov byte [esp + 0x1c], al
call fcn.004031c0
mov dword [esp + 0x30], ebp
mov edi, 0x6d57f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57f0
lea ecx, [esp + 0x20]
call fcn.004083a0
mov ecx, dword [0x6a3564]
mov edx, dword [esp + 0x38]
push ecx
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.0040f4d0
push ebp
lea eax, [esp + 0x14]
push 0x6d57ec
push eax
call fcn.0067429f
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.0040f5b0
mov eax, dword [ebx + 0x68]
mov esi, dword [eax]
cmp eax, esi
je 0x4eb137
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4eb103
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb110
mov ecx, 0x6a3560
push eax
push ecx
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
je 0x4eb127
mov esi, dword [esi]
mov eax, dword [ebx + 0x68]
cmp eax, esi
jne 0x4eb0f4
jmp 0x4eb137
test edi, edi
je 0x4eb137
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x3c]
inc ebp
cmp ebp, 3
jl 0x4eb086
xor ebp, ebp
mov edi, 0x6d5180
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5180
lea ecx, [esp + 0x20]
call fcn.004083a0
mov ecx, dword [0x6a3564]
mov edx, dword [esp + 0x38]
push ecx
push 0
push edx
lea ecx, [esp + 0x24]
call fcn.0040f4d0
push ebp
lea eax, [esp + 0x14]
push 0x6d3a54
push eax
call fcn.0067429f
lea edi, [esp + 0x1c]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x20]
call fcn.0040f5b0
mov eax, dword [ebx + 0x68]
mov esi, dword [eax]
cmp eax, esi
je 0x4eb1fa
mov edi, dword [esi + 8]
cmp dword [edi + 0x70], 1
jne 0x4eb1df
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4eb1c6
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb1d3
mov ecx, 0x6a3560
push eax
push ecx
call dword [sym.imp.kernel32.dll_lstrcmpiA]
test eax, eax
je 0x4eb1ea
mov esi, dword [esi]
mov eax, dword [ebx + 0x68]
cmp eax, esi
jne 0x4eb1b1
jmp 0x4eb1fa
test edi, edi
je 0x4eb1fa
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x3c]
inc ebp
cmp ebp, 3
jl 0x4eb143
mov ecx, dword [0x818794]
mov eax, dword [ecx + 0x490]
cmp eax, 1
jne 0x4eb3e6
mov edi, 0x6d57d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57d8
lea ecx, [esp + 0x20]
call fcn.004083a0
mov eax, dword [ebx + 0x68]
mov ebp, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, dword [eax]
cmp eax, esi
je 0x4eb282
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4eb255
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb262
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb275
mov esi, dword [esi]
mov eax, dword [ebx + 0x68]
cmp eax, esi
jne 0x4eb246
jmp 0x4eb282
test edi, edi
je 0x4eb282
mov edx, dword [edi]
push 0
mov ecx, edi
call dword [edx + 0x3c]
mov edi, 0x6d57c8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57c8
lea ecx, [esp + 0x20]
call fcn.004083a0
mov eax, dword [ebx + 0x68]
mov esi, dword [eax]
cmp eax, esi
je 0x4eb2e5
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4eb2b8
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb2c5
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb2d8
mov esi, dword [esi]
mov eax, dword [ebx + 0x68]
cmp eax, esi
jne 0x4eb2a9
jmp 0x4eb2e5
test edi, edi
je 0x4eb2e5
mov eax, dword [edi]
push 0
mov ecx, edi
call dword [eax + 0x3c]
mov edi, 0x6d57b4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57b4
lea ecx, [esp + 0x20]
call fcn.004083a0
lea edx, [esp + 0x14]
lea ecx, [ebx + 0x64]
push edx
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb35f
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb32a
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb337
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb352
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x68]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb31b
jmp 0x4eb35f
test esi, esi
je 0x4eb35f
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d57a0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57a0
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb5da
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb3ae
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb3bb
mov ecx, 0x6a3560
push eax
push ecx
call edi
test eax, eax
je 0x4eb3d9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb39f
jmp 0x4eb5da
test esi, esi
je 0x4eb5da
jmp 0x4eb5d1
mov edi, 0x6d578c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d578c
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb466
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb431
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb43e
mov ecx, 0x6a3560
push eax
push ecx
call edi
test eax, eax
je 0x4eb459
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb422
jmp 0x4eb466
test esi, esi
je 0x4eb466
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d577c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d577c
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
mov ebp, dword [sym.imp.kernel32.dll_lstrcmpiA]
cmp ecx, eax
je 0x4eb4e6
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb4b1
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb4be
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb4d9
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb4a2
jmp 0x4eb4e6
test esi, esi
je 0x4eb4e6
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d5770
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5770
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb560
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb52b
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb538
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb553
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb51c
jmp 0x4eb560
test esi, esi
je 0x4eb560
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d5760
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5760
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x14]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb5da
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb5a5
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb5b2
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb5cd
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb596
jmp 0x4eb5da
test esi, esi
je 0x4eb5da
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov al, byte [esp + 0x3c]
test al, al
jne 0x4eb78d
mov edi, 0x6d57f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57f0
lea ecx, [esp + 0x20]
call fcn.004083a0
mov eax, dword [0x6a3564]
mov ecx, dword [esp + 0x38]
push eax
push 0
push ecx
lea ecx, [esp + 0x24]
call fcn.0040f4d0
lea edx, [esp + 0x3c]
lea ecx, [ebx + 0x64]
push edx
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x3c]
mov ebp, dword [sym.imp.kernel32.dll_lstrcmpiA]
cmp ecx, eax
je 0x4eb67c
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb647
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb654
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb66f
mov eax, dword [esp + 0x3c]
mov ecx, dword [ebx + 0x68]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x4eb638
jmp 0x4eb67c
test esi, esi
je 0x4eb67c
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d5754
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5754
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x3c]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x4eb6f6
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb6c1
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb6ce
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eb6e9
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x4eb6b2
jmp 0x4eb6f6
test esi, esi
je 0x4eb6f6
mov edx, dword [esi]
push 0
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d54bc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d54bc
lea ecx, [esp + 0x20]
call fcn.004083a0
lea eax, [esp + 0x3c]
lea ecx, [ebx + 0x64]
push eax
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x3c]
cmp ecx, eax
je 0x4eba69
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov ebp, 1
mov esi, dword [eax + 8]
cmp dword [esi + 0x70], ebp
jne 0x4eb768
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb74f
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb75c
mov ecx, 0x6a3560
push eax
push ecx
call edi
test eax, eax
je 0x4eb77a
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x3c], eax
jne 0x4eb73b
jmp 0x4eba69
test esi, esi
je 0x4eba69
mov edx, dword [esi]
push 0
mov ecx, esi
jmp 0x4eba66
mov eax, dword [0x818794]
mov eax, dword [eax + 0x494]
lea ebp, [eax - 0x6a]
cmp ebp, 0x6a
ja case.0x4eb8d0.8
xor ecx, ecx
mov cl, byte [ebp + 0x4eba9c]
jmp dword [ecx*4 + 0x4eba94]
mov edi, 0x6d5754
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5754
lea ecx, [esp + 0x20]
call fcn.004083a0
lea edx, [esp + 0x14]
lea ecx, [ebx + 0x64]
push edx
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je 0x4eb836
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, dword [eax + 8]
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb7fe
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb80b
mov ecx, 0x6a3560
push eax
push ecx
call edi
test eax, eax
je 0x4eb826
mov eax, dword [esp + 0x14]
mov ecx, dword [ebx + 0x68]
mov eax, dword [eax]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb7ef
jmp 0x4eb836
test esi, esi
je 0x4eb836
mov eax, dword [esp + 0x3c]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x3c]
mov edi, 0x6d54bc
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d54bc
lea ecx, [esp + 0x20]
call fcn.004083a0
lea ecx, [esp + 0x14]
push ecx
lea ecx, [ebx + 0x64]
call fcn.00473b10
mov ecx, dword [ebx + 0x68]
mov eax, dword [esp + 0x14]
cmp ecx, eax
je case.0x4eb7ac.107
mov edi, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov esi, dword [eax + 8]
cmp dword [esi + 0x70], 1
jne 0x4eb8a0
mov eax, dword [esi + 0x30]
test eax, eax
jne 0x4eb887
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eb894
mov ecx, 0x6a3560
push eax
push ecx
call edi
test eax, eax
je 0x4eb8af
mov eax, dword [esp + 0x14]
mov eax, dword [eax]
mov ecx, dword [ebx + 0x68]
cmp ecx, eax
mov dword [esp + 0x14], eax
jne 0x4eb872
jmp case.0x4eb7ac.107
test esi, esi
je case.0x4eb7ac.107
mov eax, dword [esp + 0x3c]
mov edx, dword [esi]
push eax
mov ecx, esi
call dword [edx + 0x3c]
cmp ebp, 0x6a
ja case.0x4eb8d0.8
xor ecx, ecx
mov cl, byte [ebp + 0x4ebb2c]
jmp dword [ecx*4 + 0x4ebb08]
mov edi, 0x6d57d8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57d8
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d57c8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57c8
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d57b4
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57b4
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d57a0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57a0
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d578c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d578c
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d577c
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d577c
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d5770
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5770
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d5760
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d5760
lea ecx, [esp + 0x20]
call fcn.004083a0
jmp 0x4eba1b
mov edi, 0x6d57f0
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push 0x6d57f0
lea ecx, [esp + 0x20]
call fcn.004083a0
mov edx, dword [0x6a3564]
mov eax, dword [esp + 0x38]
push edx
push 0
push eax
lea ecx, [esp + 0x24]
call fcn.0040f4d0
mov eax, dword [ebx + 0x68]
mov esi, dword [eax]
cmp eax, esi
je 0x4eba69
mov ebp, dword [sym.imp.kernel32.dll_lstrcmpiA]
mov edi, dword [esi + 8]
mov eax, dword [edi + 0x30]
test eax, eax
jne 0x4eba39
mov eax, 0x6a3560
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x4eba46
mov ecx, 0x6a3560
push eax
push ecx
call ebp
test eax, eax
je 0x4eba59
mov esi, dword [esi]
mov eax, dword [ebx + 0x68]
cmp eax, esi
jne 0x4eba2a
jmp 0x4eba69
test edi, edi
je 0x4eba69
mov eax, dword [esp + 0x3c]
mov edx, dword [edi]
push eax
mov ecx, edi
call dword [edx + 0x3c]
push 1
lea ecx, [esp + 0x1c]
mov dword [esp + 0x34], 0xffffffff
call fcn.004031c0
mov ecx, dword [esp + 0x28]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x24
ret 8