Function at 0x4ee930
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffa0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x1c], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x4ef77e
push dword fs:[eax]
mov dword fs:[eax], esp
mov di, word [ebx + 8]
test di, di
jne 0x4ee9c5
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x18]
test al, al
je 0x4ee97b
mov word [ebp - 6], 1
jmp 0x4ee9d5
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x44]
mov eax, ebx
call fcn.004b7690
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 0xb
lea eax, [ebp - 0x40]
push eax
lea edx, [ebp - 0x48]
mov eax, dword [0x51b0d0]
call fcn.00406378
mov eax, dword [ebp - 0x48]
xor ecx, ecx
pop edx
call fcn.00409dc8
mov ecx, dword [ebp - 0x38]
mov dl, 1
mov eax, dword [0x407958]
call fcn.0040cedc
call fcn.00403ab8
jmp 0x4ee9d5
movzx edx, di
xor ecx, ecx
mov eax, esi
call fcn.004ee1d4
mov word [ebp - 6], ax
mov eax, ebx
call fcn.004ec304
cmp byte [ebx + 0x48], 0
je 0x4ee9fe
push 0x4ef794
push dword [ebx + 4]
push 0x4ef794
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.004044bc
jmp 0x4eea09
lea eax, [ebp - 0x1c]
mov edx, dword [ebx + 4]
call fcn.004041d4
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x18], edi
mov eax, ebx
call fcn.004ec1ec
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x38], 0
jne 0x4eeca5
movzx eax, word [ebx + 8]
cmp eax, 0x19
jg 0x4eea53
je 0x4eeb4e
dec eax
je 0x4eea7f
add eax, 0xfffffff4
sub eax, 2
jb 0x4eec66
add eax, 0xfffffffa
sub eax, 2
jb 0x4eea66
jmp 0x4eed1f
sub eax, 0x6b
je 0x4eea7f
sub eax, 0xa
je 0x4eeb4e
jmp 0x4eed1f
mov eax, dword [ebp - 0x10]
mov dword [ebp - 0x14], eax
mov edi, 0x7d0
mov eax, dword [ebp - 0x10]
add eax, 2
mov dword [ebp - 0x10], eax
jmp 0x4eed1f
cmp byte [ebx + 0xa], 1
je 0x4eea9b
cmp word [esi + 0x34], 4
jne 0x4eeab7
mov eax, ebx
call fcn.004b7700
test al, al
je 0x4eea9b
sub al, 3
jne 0x4eeab7
cmp dword [ebx + 0x4c], 0
je 0x4eeab7
mov edi, dword [ebx + 0x4c]
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4eb0
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
jne 0x4eeb09
mov eax, dword [esi + 0x68]
cmp word [eax + 0x62], 1
jbe 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx edi, ax
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4eb0
jmp 0x4eed1f
mov eax, dword [esi + 0x68]
cmp word [eax + 0x62], 1
jbe 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
inc eax
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx edi, ax
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4eb0
jmp 0x4eed1f
cmp byte [ebx + 0xa], 1
je 0x4eeb6a
cmp word [esi + 0x34], 4
jne 0x4eeb9c
mov eax, ebx
call fcn.004b7700
test al, al
je 0x4eeb6a
sub al, 3
jne 0x4eeb9c
cmp dword [ebx + 0x4c], 0
je 0x4eeb9c
mov edi, dword [ebx + 0x4c]
add edi, edi
add edi, 2
push 0
mov ecx, edi
sub ecx, 2
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4ecc
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
jne 0x4eeb9c
dec edi
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
jne 0x4eec05
mov eax, dword [esi + 0x68]
cmp word [eax + 0x62], 1
jbe 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
add eax, eax
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
mov edi, eax
add edi, edi
mov eax, edi
and eax, 0x80000001
jns 0x4eebeb
dec eax
or eax, 0xfffffffe
inc eax
sub edi, eax
dec edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4ecc
jmp 0x4eed1f
mov eax, dword [esi + 0x68]
cmp word [eax + 0x62], 1
jbe 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
add eax, eax
add eax, 2
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
mov edi, eax
add edi, edi
add edi, 2
mov eax, edi
and eax, 0x80000001
jns 0x4eec4b
dec eax
or eax, 0xfffffffe
inc eax
sub edi, eax
push 0
mov ecx, edi
sub ecx, 2
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4ecc
jmp 0x4eed1f
mov al, byte [ebx + 0xa]
cmp al, 1
jne 0x4eec89
mov eax, ebx
call fcn.004ed830
mov edx, dword [eax]
call dword [edx + 0x18]
mov edi, eax
test edi, edi
jne 0x4eed1f
inc edi
jmp 0x4eed1f
mov edi, dword [0x51ab64]
cmp al, 2
jne 0x4eed1f
mov eax, ebx
call fcn.004ed830
mov edx, dword [eax]
call dword [edx + 0x28]
jmp 0x4eed1f
mov ax, word [ebx + 8]
dec ax
je 0x4eecb4
sub ax, 0x6a
jne 0x4eed1f
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
jne 0x4eecf3
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
inc eax
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx edi, ax
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4eb0
jmp 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
cmp edi, eax
jle 0x4eed1f
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx edi, ax
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4a4acc]
call fcn.004a4eb0
mov edx, 4
mov eax, dword [0x4a4acc]
call fcn.004a4e7c
mov dword [ebp - 4], eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [0x4a4acc]
call fcn.004a4ee4
xor edx, edx
push ebp
push 0x4ef74c
push dword fs:[edx]
mov dword fs:[edx], esp
mov al, byte [esi + 0x30]
cmp al, 1
jne 0x4eef45
mov ax, word [ebx + 8]
sub ax, 1
jb 0x4eedb2
sub ax, 0x64
jne 0x4eedbd
mov eax, ebx
call fcn.004ed834
test eax, eax
jne 0x4eed88
mov ecx, 0x1022
mov edx, 0x4ef7a4
mov eax, 0x4ef7e4
call fcn.00404098
mov eax, ebx
call fcn.004ed834
mov dl, byte [esi + 0x30]
mov byte [eax + 0x1d], dl
mov eax, ebx
call fcn.004ed834
call fcn.004ebaa8
mov eax, ebx
call fcn.004ed834
call fcn.004ebc58
mov dword [ebp - 0x10], eax
jmp 0x4eedbd
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov edi, 1
cmp byte [ebx + 0x38], 0
jne 0x4eeede
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jb 0x4eee75
cmp dword [ebp - 0x14], 0
je 0x4eee30
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004ec1f0
push eax
push 0xffffffffffffffff
movzx eax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc58
push eax
mov eax, dword [0x51ae38]
mov eax, dword [eax]
call eax
add esp, 0x3c
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4eeecd
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
mov eax, ebx
call fcn.004ec1f0
push eax
push 0xffffffffffffffff
movzx eax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc58
push eax
mov eax, dword [0x51ae94]
mov eax, dword [eax]
call eax
add esp, 0x2c
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4eeecd
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
push 0
mov eax, ebx
call fcn.004ec1f0
push eax
push 0
movzx eax, word [ebp - 6]
push eax
mov eax, dword [0x51ab64]
push eax
push 0
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
push 0
mov eax, dword [esi + 0x2c]
call fcn.004ebc58
push eax
mov eax, dword [0x51ae34]
mov eax, dword [eax]
call eax
add esp, 0x50
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov edx, 1
mov eax, ebx
call fcn.004ebdd0
jmp 0x4ef731
mov edx, dword [ebx + 0x3c]
mov eax, ebx
call fcn.004ebdd0
push 0
push 0
push 0
mov eax, dword [ebx + 0x2c]
push eax
mov eax, dword [ebx + 0x3c]
push eax
push 0
push 0
push 2
push edi
push 0
push 0
mov eax, ebx
call fcn.004ec1f0
push eax
push 0
movzx eax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
push 1
mov eax, dword [esi + 0x2c]
call fcn.004ebc58
push eax
mov eax, dword [0x51ae34]
mov eax, dword [eax]
call eax
add esp, 0x50
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4ef731
cmp al, 2
jne 0x4ef72a
mov ax, word [ebx + 8]
movzx edx, ax
cmp edx, 0x65
jg 0x4eef83
je 0x4eefad
sub edx, 1
jb 0x4ef0eb
sub edx, 0xe
je 0x4ef08b
dec edx
je 0x4ef0c8
dec edx
sub edx, 2
jb 0x4ef08b
jmp 0x4ef0fb
add edx, 0xffffff9a
sub edx, 2
jb 0x4ef01f
sub edx, 2
jb 0x4ef055
sub edx, 9
je 0x4ef0d2
dec edx
je 0x4ef08b
jmp 0x4ef0fb
mov eax, ebx
call fcn.004ed834
test eax, eax
jne 0x4eefcc
mov ecx, 0x1048
mov edx, 0x4ef7a4
mov eax, 0x4ef7e4
call fcn.00404098
mov eax, ebx
call fcn.004ed834
mov dl, byte [esi + 0x30]
mov byte [eax + 0x1d], dl
mov eax, ebx
call fcn.004ed834
mov edx, dword [esi + 0x68]
mov edx, dword [edx + 0xbc]
mov dword [eax + 0x18], edx
mov eax, ebx
call fcn.004ed834
mov edx, dword [esi + 0x68]
mov edx, dword [edx + 0xb8]
mov dword [eax + 0x14], edx
mov eax, ebx
call fcn.004ed834
call fcn.004ebaa8
mov eax, ebx
call fcn.004ed834
call fcn.004ebcc0
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov eax, dword [esi + 0x68]
call fcn.004eaf10
push eax
mov eax, ebx
call fcn.004ed838
pop edx
call fcn.004fbf80
mov eax, ebx
call fcn.004ed838
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, ebx
call fcn.004ed838
call fcn.004fbefc
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov eax, dword [esi + 0x68]
call fcn.004eaf10
push eax
mov eax, ebx
call fcn.004ed83c
pop edx
call fcn.004fbf80
mov eax, ebx
call fcn.004ed83c
mov edx, dword [eax]
call dword [edx + 0x44]
mov eax, ebx
call fcn.004ed83c
call fcn.004fbefc
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x68]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x2c], eax
mov eax, dword [esi + 0x68]
call fcn.004eaf10
mov edx, eax
mov eax, dword [ebp - 0x20]
call fcn.004e125c
mov eax, dword [ebp - 0x20]
call fcn.004e14c4
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov edi, 0x16
mov eax, ebx
call fcn.004ed848
call fcn.004fe568
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov edi, 1
jmp 0x4ef1e2
mov edx, dword [0x51b1e4]
cmp word [edx], 0x2328
jb 0x4ef1e2
add eax, 0xffffff93
sub ax, 3
jb 0x4ef120
sub ax, 2
jb 0x4ef193
jmp 0x4ef1e2
mov eax, ebx
call fcn.004ec4dc
dec eax
jg 0x4ef1e2
mov eax, ebx
call fcn.004ed840
mov dword [ebp - 0x30], eax
mov edi, 4
mov ax, word [ebx + 8]
sub ax, 0x6d
je 0x4ef153
dec ax
je 0x4ef162
dec ax
je 0x4ef171
jmp 0x4ef17e
mov edx, 0x44
mov eax, dword [ebp - 0x30]
call fcn.004fd128
jmp 0x4ef17e
mov edx, 0x45
mov eax, dword [ebp - 0x30]
call fcn.004fd128
jmp 0x4ef17e
mov edx, 0x46
mov eax, dword [ebp - 0x30]
call fcn.004fd128
mov eax, dword [ebp - 0x30]
call fcn.004fcf64
mov eax, dword [ebp - 0x30]
call fcn.004fd19c
mov dword [ebp - 0x10], eax
jmp 0x4ef1e2
mov eax, ebx
call fcn.004ec4dc
dec eax
jg 0x4ef1e2
mov eax, ebx
call fcn.004ed844
mov dword [ebp - 0x34], eax
mov edi, 4
cmp word [ebx + 8], 0x70
jne 0x4ef1c2
mov edx, 0x3e
mov eax, dword [ebp - 0x34]
call fcn.004fe164
jmp 0x4ef1cf
mov edx, 0x3f
mov eax, dword [ebp - 0x34]
call fcn.004fe164
mov eax, dword [ebp - 0x34]
call fcn.004fdfac
mov eax, dword [ebp - 0x34]
call fcn.004fe1d8
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [ebx + 0x38], 0
jne 0x4ef47d
mov eax, dword [esi + 0x44]
cmp eax, 1
jne 0x4ef3b5
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jb 0x4ef313
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004ec1f0
push eax
mov ax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004043fc
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x58]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc98
push eax
mov eax, dword [0x51b544]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov ax, word [ebx + 8]
sub ax, 0xf
je 0x4ef284
dec ax
je 0x4ef2d0
dec eax
sub ax, 2
jb 0x4ef284
sub ax, 0x61
jne 0x4ef3a4
push 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov edx, dword [eax]
call dword [edx + 0x14]
push eax
push 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [eax + 0x30]
push eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b58c]
mov eax, dword [eax]
call eax
add esp, 0x1c
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4ef3a4
push 0
push 0
push 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
call fcn.004e4214
push eax
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x2c]
push eax
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b58c]
mov eax, dword [eax]
call eax
add esp, 0x1c
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4ef3a4
push 2
push 0
push 0
push 0
push 0
mov eax, ebx
call fcn.004ec1f0
push eax
mov ax, word [ebp - 6]
push eax
push edi
push 0
mov eax, dword [ebp - 0x1c]
call fcn.004043fc
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x58]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc98
push eax
mov eax, dword [0x51b544]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov eax, dword [0x51d398]
push eax
mov eax, esi
call fcn.004ee2ac
push eax
mov eax, dword [0x51d394]
push eax
mov eax, esi
call fcn.004ee2ac
push eax
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b2f4]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x40], eax
mov edx, 1
mov eax, ebx
call fcn.004ebdd0
jmp 0x4ef506
cmp eax, dword [ebx + 0x3c]
jle 0x4ef3f9
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0x50]
mov eax, dword [0x51b26c]
call fcn.00406378
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x60], eax
mov byte [ebp - 0x5c], 0xb
mov eax, dword [esi + 0x44]
mov dword [ebp - 0x58], eax
mov byte [ebp - 0x54], 0
lea edx, [ebp - 0x60]
mov ecx, 1
pop eax
call fcn.00409dc8
mov eax, dword [ebp - 0x4c]
call fcn.004c6b14
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004ec1f0
push eax
mov ax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004043fc
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x58]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc98
push eax
mov eax, dword [0x51b544]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004edc3c
push 0
mov eax, dword [ebp - 0x18]
push eax
push 2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b3f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4ef506
mov edx, dword [ebx + 0x3c]
mov eax, ebx
call fcn.004ebdd0
push 0
mov eax, dword [ebx + 0x2c]
push eax
mov eax, dword [ebx + 0x3c]
push eax
push 0
push 0
mov eax, ebx
call fcn.004ec1f0
push eax
mov ax, word [ebp - 6]
push eax
push edi
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004043fc
push eax
mov eax, dword [ebp - 0x1c]
call fcn.004045fc
push eax
mov eax, dword [esi + 0x58]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004ebc98
push eax
mov eax, dword [0x51b544]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004edc3c
push 0
push 0
push 2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [esi + 0x58]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b3f8]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
movzx eax, word [ebx + 8]
cmp eax, 0x19
jg 0x4ef51e
je 0x4ef536
dec eax
je 0x4ef52a
add eax, 0xfffffff4
sub eax, 2
jb 0x4ef53f
jmp 0x4ef561
sub eax, 0x6b
je 0x4ef52a
sub eax, 0xa
je 0x4ef536
jmp 0x4ef561
mov eax, dword [esi + 0x68]
movzx eax, word [eax + 0x60]
mov dword [ebp - 0x24], eax
jmp 0x4ef566
mov dword [ebp - 0x24], 0x3e8
jmp 0x4ef566
mov eax, ebx
call fcn.004ed830
cmp byte [eax + 0xc], 0
je 0x4ef555
mov dword [ebp - 0x24], 0x3e8
jmp 0x4ef566
mov eax, dword [esi + 0x68]
movzx eax, word [eax + 0x60]
mov dword [ebp - 0x24], eax
jmp 0x4ef566
xor eax, eax
mov dword [ebp - 0x24], eax
cmp byte [ebx + 0x51], 0
je 0x4ef5a9
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
je 0x4ef5a9
mov dword [ebp - 0x28], 2
mov eax, dword [esi + 0x58]
push eax
push 0x20
push 0
lea eax, [ebp - 0x28]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b128]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
cmp dword [ebp - 0x24], 0
jle 0x4ef5d6
mov eax, dword [esi + 0x58]
push eax
push 0x1f
push 0
lea eax, [ebp - 0x24]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b128]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov eax, dword [0x51b4dc]
mov dl, byte [0x4ef798]
cmp dl, byte [eax]
je 0x4ef731
mov ax, word [ebx + 8]
sub ax, 1
je 0x4ef609
sub ax, 0x18
je 0x4ef609
sub ax, 0x52
je 0x4ef609
sub ax, 0xa
jne 0x4ef731
mov eax, dword [ebx + 0xc]
dec eax
mov dword [ebp - 0x2c], eax
mov ax, word [ebx + 8]
sub ax, 0x19
je 0x4ef620
sub ax, 0x5c
jne 0x4ef62d
mov eax, dword [ebp - 0x2c]
sar eax, 1
jns 0x4ef62a
adc eax, 0
mov dword [ebp - 0x2c], eax
cmp byte [ebx + 0xa], 0
jne 0x4ef639
cmp dword [ebx + 0x4c], 0
jg 0x4ef63f
cmp byte [ebx + 0xa], 1
jne 0x4ef65d
mov eax, dword [esi + 0x68]
call fcn.004eabbc
movzx eax, ax
mov edx, dword [ebx + 0x4c]
lea edx, [edx + edx*2]
cmp eax, edx
jle 0x4ef65d
mov eax, dword [ebx + 0x4c]
lea eax, [eax + eax*2]
mov dword [ebp - 0x2c], eax
cmp byte [ebx + 0xa], 1
jne 0x4ef68f
mov ax, word [ebx + 8]
sub ax, 0x19
je 0x4ef673
sub ax, 0x5c
jne 0x4ef682
cmp dword [ebp - 0x2c], 4
jge 0x4ef68f
mov dword [ebp - 0x2c], 4
jmp 0x4ef68f
cmp dword [ebp - 0x2c], 2
jge 0x4ef68f
mov dword [ebp - 0x2c], 2
mov eax, dword [esi + 0x58]
push eax
push 0x21
push 0
lea eax, [ebp - 0x2c]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b128]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
mov eax, dword [0x51b1e4]
cmp word [eax], 0x2328
jb 0x4ef731
mov eax, dword [esi + 0x68]
call fcn.004e9fa4
cmp ax, 0x23f0
jb 0x4ef731
cmp byte [ebx + 0xa], 1
jne 0x4ef731
cmp dword [ebx + 0x4c], 0
jle 0x4ef731
mov eax, dword [esi + 0x68]
call fcn.004e9fa4
cmp ax, 0x23f6
jb 0x4ef6f8
mov eax, dword [esi + 0x68]
call fcn.004e9fa4
cmp ax, 0x2710
jbe 0x4ef731
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x58]
push eax
push 0xa3
push 0
lea eax, [ebp - 0x2c]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x51b128]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004edc3c
jmp 0x4ef731
mov eax, esi
call fcn.004edb8c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4ef753
mov edx, dword [ebp - 4]
mov eax, dword [0x4a4acc]
call fcn.004a4e98
ret