Function at 0x4f73bc
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 0x4f820a
push dword fs:[eax]
mov dword fs:[eax], esp
mov di, word [ebx + 8]
test di, di
jne 0x4f7451
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x18]
test al, al
je 0x4f7407
mov word [ebp - 6], 1
jmp 0x4f7461
lea eax, [ebp - 0x38]
push eax
lea edx, [ebp - 0x44]
mov eax, ebx
call fcn.004bde30
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 [0x558f48]
call fcn.00406820
mov eax, dword [ebp - 0x48]
xor ecx, ecx
pop edx
call fcn.0040a39c
mov ecx, dword [ebp - 0x38]
mov dl, 1
mov eax, dword [0x407f74]
call fcn.0040d324
call fcn.00403dc4
jmp 0x4f7461
movzx edx, di
xor ecx, ecx
mov eax, esi
call fcn.004f6b74
mov word [ebp - 6], ax
mov eax, ebx
call fcn.004f4bd8
cmp byte [ebx + 0x48], 0
je 0x4f748a
push 0x4f8220
push dword [ebx + 4]
push 0x4f8220
lea eax, [ebp - 0x1c]
mov edx, 3
call fcn.004047c8
jmp 0x4f7495
lea eax, [ebp - 0x1c]
mov edx, dword [ebx + 4]
call fcn.004044e0
mov edi, dword [ebx + 0xc]
mov dword [ebp - 0x18], edi
mov eax, ebx
call fcn.004f4ac0
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0x14], eax
cmp byte [ebx + 0x38], 0
jne 0x4f7731
movzx eax, word [ebx + 8]
cmp eax, 0x19
jg 0x4f74df
je 0x4f75da
dec eax
je 0x4f750b
add eax, 0xfffffff4
sub eax, 2
jb 0x4f76f2
add eax, 0xfffffffa
sub eax, 2
jb 0x4f74f2
jmp 0x4f77ab
sub eax, 0x6b
je 0x4f750b
sub eax, 0xa
je 0x4f75da
jmp 0x4f77ab
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 0x4f77ab
cmp byte [ebx + 0xa], 1
je 0x4f7527
cmp word [esi + 0x34], 4
jne 0x4f7543
mov eax, ebx
call fcn.004bdea0
test al, al
je 0x4f7527
sub al, 3
jne 0x4f7543
cmp dword [ebx + 0x4c], 0
je 0x4f7543
mov edi, dword [ebx + 0x4c]
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4aa854]
call fcn.004aac38
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
jne 0x4f7595
mov eax, dword [esi + 0x74]
cmp word [eax + 0x62], 1
jbe 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx edi, ax
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4aa854]
call fcn.004aac38
jmp 0x4f77ab
mov eax, dword [esi + 0x74]
cmp word [eax + 0x62], 1
jbe 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
inc eax
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx edi, ax
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4aa854]
call fcn.004aac38
jmp 0x4f77ab
cmp byte [ebx + 0xa], 1
je 0x4f75f6
cmp word [esi + 0x34], 4
jne 0x4f7628
mov eax, ebx
call fcn.004bdea0
test al, al
je 0x4f75f6
sub al, 3
jne 0x4f7628
cmp dword [ebx + 0x4c], 0
je 0x4f7628
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 [0x4aa854]
call fcn.004aac54
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
jne 0x4f7628
dec edi
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
jne 0x4f7691
mov eax, dword [esi + 0x74]
cmp word [eax + 0x62], 1
jbe 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
add eax, eax
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
mov edi, eax
add edi, edi
mov eax, edi
and eax, 0x80000001
jns 0x4f7677
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 [0x4aa854]
call fcn.004aac54
jmp 0x4f77ab
mov eax, dword [esi + 0x74]
cmp word [eax + 0x62], 1
jbe 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
add eax, eax
add eax, 2
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
mov edi, eax
add edi, edi
add edi, 2
mov eax, edi
and eax, 0x80000001
jns 0x4f76d7
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 [0x4aa854]
call fcn.004aac54
jmp 0x4f77ab
mov al, byte [ebx + 0xa]
cmp al, 1
jne 0x4f7715
mov eax, ebx
call fcn.004f61b8
mov edx, dword [eax]
call dword [edx + 0x18]
mov edi, eax
test edi, edi
jne 0x4f77ab
inc edi
jmp 0x4f77ab
mov edi, dword [0x55786c]
cmp al, 2
jne 0x4f77ab
mov eax, ebx
call fcn.004f61b8
mov edx, dword [eax]
call dword [edx + 0x2c]
jmp 0x4f77ab
mov ax, word [ebx + 8]
dec ax
je 0x4f7740
sub ax, 0x6a
jne 0x4f77ab
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
jne 0x4f777f
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
inc eax
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx edi, ax
inc edi
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4aa854]
call fcn.004aac38
jmp 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
cmp edi, eax
jle 0x4f77ab
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx edi, ax
push 0
mov ecx, edi
dec ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [0x4aa854]
call fcn.004aac38
mov edx, 4
mov eax, dword [0x4aa854]
call fcn.004aac04
mov dword [ebp - 4], eax
xor ecx, ecx
mov edx, dword [ebp - 4]
mov eax, dword [0x4aa854]
call fcn.004aac6c
xor edx, edx
push ebp
push 0x4f81d8
push dword fs:[edx]
mov dword fs:[edx], esp
mov al, byte [esi + 0x30]
cmp al, 1
jne 0x4f79d1
mov ax, word [ebx + 8]
sub ax, 1
jb 0x4f783e
sub ax, 0x64
jne 0x4f7849
mov eax, ebx
call fcn.004f61bc
test eax, eax
jne 0x4f7814
mov ecx, 0x10c1
mov edx, 0x4f8230
mov eax, 0x4f8270
call fcn.004043a4
mov eax, ebx
call fcn.004f61bc
mov dl, byte [esi + 0x30]
mov byte [eax + 0x1d], dl
mov eax, ebx
call fcn.004f61bc
call fcn.004f437c
mov eax, ebx
call fcn.004f61bc
call fcn.004f452c
mov dword [ebp - 0x10], eax
jmp 0x4f7849
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov edi, 1
cmp byte [ebx + 0x38], 0
jne 0x4f796a
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jb 0x4f7901
cmp dword [ebp - 0x14], 0
je 0x4f78bc
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004f4ac4
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.00404908
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f452c
push eax
mov eax, dword [0x558b88]
mov eax, dword [eax]
call eax
add esp, 0x3c
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f7959
push 0xffffffffffffffff
push 0xffffffffffffffff
push 0
mov eax, ebx
call fcn.004f4ac4
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.00404908
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f452c
push eax
mov eax, dword [0x558bf8]
mov eax, dword [eax]
call eax
add esp, 0x2c
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f7959
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.004f4ac4
push eax
push 0
movzx eax, word [ebp - 6]
push eax
mov eax, dword [0x55786c]
push eax
push 0
push 0xffffffffffffffff
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
push 0
mov eax, dword [esi + 0x2c]
call fcn.004f452c
push eax
mov eax, dword [0x558b84]
mov eax, dword [eax]
call eax
add esp, 0x50
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov edx, 1
mov eax, ebx
call fcn.004f46a4
jmp 0x4f81bd
mov edx, dword [ebx + 0x3c]
mov eax, ebx
call fcn.004f46a4
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.004f4ac4
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.00404908
push eax
push 1
mov eax, dword [esi + 0x2c]
call fcn.004f452c
push eax
mov eax, dword [0x558b84]
mov eax, dword [eax]
call eax
add esp, 0x50
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f81bd
cmp al, 2
jne 0x4f81b6
mov ax, word [ebx + 8]
movzx edx, ax
cmp edx, 0x65
jg 0x4f7a0f
je 0x4f7a39
sub edx, 1
jb 0x4f7b77
sub edx, 0xe
je 0x4f7b17
dec edx
je 0x4f7b54
dec edx
sub edx, 2
jb 0x4f7b17
jmp 0x4f7b87
add edx, 0xffffff9a
sub edx, 2
jb 0x4f7aab
sub edx, 2
jb 0x4f7ae1
sub edx, 9
je 0x4f7b5e
dec edx
je 0x4f7b17
jmp 0x4f7b87
mov eax, ebx
call fcn.004f61bc
test eax, eax
jne 0x4f7a58
mov ecx, 0x10e7
mov edx, 0x4f8230
mov eax, 0x4f8270
call fcn.004043a4
mov eax, ebx
call fcn.004f61bc
mov dl, byte [esi + 0x30]
mov byte [eax + 0x1d], dl
mov eax, ebx
call fcn.004f61bc
mov edx, dword [esi + 0x74]
mov edx, dword [edx + 0xbc]
mov dword [eax + 0x18], edx
mov eax, ebx
call fcn.004f61bc
mov edx, dword [esi + 0x74]
mov edx, dword [edx + 0xb8]
mov dword [eax + 0x14], edx
mov eax, ebx
call fcn.004f61bc
call fcn.004f437c
mov eax, ebx
call fcn.004f61bc
call fcn.004f4594
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov eax, dword [esi + 0x74]
call fcn.004f37c8
push eax
mov eax, ebx
call fcn.004f61c0
pop edx
call fcn.005025a4
mov eax, ebx
call fcn.004f61c0
mov edx, dword [eax]
call dword [edx + 0x4c]
mov eax, ebx
call fcn.004f61c0
call fcn.00502520
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov eax, dword [esi + 0x74]
call fcn.004f37c8
push eax
mov eax, ebx
call fcn.004f61c4
pop edx
call fcn.005025a4
mov eax, ebx
call fcn.004f61c4
mov edx, dword [eax]
call dword [edx + 0x4c]
mov eax, ebx
call fcn.004f61c4
call fcn.00502520
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x74]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 0x20]
mov dword [edx + 0x2c], eax
mov eax, dword [esi + 0x74]
call fcn.004f37c8
mov edx, eax
mov eax, dword [ebp - 0x20]
call fcn.004e9a5c
mov eax, dword [ebp - 0x20]
call fcn.004e9cc4
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov edi, 0x16
mov eax, ebx
call fcn.004f61d0
call fcn.00504d84
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
mov edi, 1
jmp 0x4f7c6e
mov edx, dword [0x5590b4]
cmp word [edx], 0x2328
jb 0x4f7c6e
add eax, 0xffffff93
sub ax, 3
jb 0x4f7bac
sub ax, 2
jb 0x4f7c1f
jmp 0x4f7c6e
mov eax, ebx
call fcn.004f4db0
dec eax
jg 0x4f7c6e
mov eax, ebx
call fcn.004f61c8
mov dword [ebp - 0x30], eax
mov edi, 4
mov ax, word [ebx + 8]
sub ax, 0x6d
je 0x4f7bdf
dec ax
je 0x4f7bee
dec ax
je 0x4f7bfd
jmp 0x4f7c0a
mov edx, 0x44
mov eax, dword [ebp - 0x30]
call fcn.00503944
jmp 0x4f7c0a
mov edx, 0x45
mov eax, dword [ebp - 0x30]
call fcn.00503944
jmp 0x4f7c0a
mov edx, 0x46
mov eax, dword [ebp - 0x30]
call fcn.00503944
mov eax, dword [ebp - 0x30]
call fcn.00503780
mov eax, dword [ebp - 0x30]
call fcn.005039b8
mov dword [ebp - 0x10], eax
jmp 0x4f7c6e
mov eax, ebx
call fcn.004f4db0
dec eax
jg 0x4f7c6e
mov eax, ebx
call fcn.004f61cc
mov dword [ebp - 0x34], eax
mov edi, 4
cmp word [ebx + 8], 0x70
jne 0x4f7c4e
mov edx, 0x3e
mov eax, dword [ebp - 0x34]
call fcn.00504980
jmp 0x4f7c5b
mov edx, 0x3f
mov eax, dword [ebp - 0x34]
call fcn.00504980
mov eax, dword [ebp - 0x34]
call fcn.005047c8
mov eax, dword [ebp - 0x34]
call fcn.005049f4
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [ebx + 0x38], 0
jne 0x4f7f09
mov eax, dword [esi + 0x44]
cmp eax, 1
jne 0x4f7e41
mov ax, word [ebx + 8]
add eax, 0xfffffff3
sub ax, 2
jb 0x4f7d9f
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004f4ac4
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.00404708
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [esi + 0x64]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f456c
push eax
mov eax, dword [0x559530]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov ax, word [ebx + 8]
sub ax, 0xf
je 0x4f7d10
dec ax
je 0x4f7d5c
dec eax
sub ax, 2
jb 0x4f7d10
sub ax, 0x61
jne 0x4f7e30
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 + 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x559588]
mov eax, dword [eax]
call eax
add esp, 0x1c
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f7e30
push 0
push 0
push 0
mov eax, ebx
mov edx, dword [eax]
call dword [edx + 0x10]
call fcn.004eca18
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 + 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x559588]
mov eax, dword [eax]
call eax
add esp, 0x1c
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f7e30
push 2
push 0
push 0
push 0
push 0
mov eax, ebx
call fcn.004f4ac4
push eax
mov ax, word [ebp - 6]
push eax
push edi
push 0
mov eax, dword [ebp - 0x1c]
call fcn.00404708
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [esi + 0x64]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f456c
push eax
mov eax, dword [0x559530]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov eax, dword [0x55b47c]
push eax
mov eax, esi
call fcn.004f6c4c
push eax
mov eax, dword [0x55b478]
push eax
mov eax, esi
call fcn.004f6c4c
push eax
mov eax, dword [esi + 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x559224]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x40], eax
mov edx, 1
mov eax, ebx
call fcn.004f46a4
jmp 0x4f7f92
cmp eax, dword [ebx + 0x3c]
jle 0x4f7e85
lea eax, [ebp - 0x4c]
push eax
lea edx, [ebp - 0x50]
mov eax, dword [0x55917c]
call fcn.00406820
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.0040a39c
mov eax, dword [ebp - 0x4c]
call fcn.004ce1b0
push 0
push 0
push 0
push 0
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.004f4ac4
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.00404708
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [esi + 0x64]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f456c
push eax
mov eax, dword [0x559530]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004f65dc
push 0
mov eax, dword [ebp - 0x18]
push eax
push 2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [esi + 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x559384]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f7f92
mov edx, dword [ebx + 0x3c]
mov eax, ebx
call fcn.004f46a4
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.004f4ac4
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.00404708
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404908
push eax
mov eax, dword [esi + 0x64]
push eax
lea eax, [ebp - 0xc]
push eax
mov eax, dword [esi + 0x2c]
call fcn.004f456c
push eax
mov eax, dword [0x559530]
mov eax, dword [eax]
call eax
add esp, 0x38
mov edx, eax
mov eax, esi
call fcn.004f65dc
push 0
push 0
push 2
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [esi + 0x64]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x559384]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
movzx eax, word [ebx + 8]
cmp eax, 0x19
jg 0x4f7faa
je 0x4f7fc2
dec eax
je 0x4f7fb6
add eax, 0xfffffff4
sub eax, 2
jb 0x4f7fcb
jmp 0x4f7fed
sub eax, 0x6b
je 0x4f7fb6
sub eax, 0xa
je 0x4f7fc2
jmp 0x4f7fed
mov eax, dword [esi + 0x74]
movzx eax, word [eax + 0x60]
mov dword [ebp - 0x24], eax
jmp 0x4f7ff2
mov dword [ebp - 0x24], 0x3e8
jmp 0x4f7ff2
mov eax, ebx
call fcn.004f61b8
cmp byte [eax + 0xc], 0
je 0x4f7fe1
mov dword [ebp - 0x24], 0x3e8
jmp 0x4f7ff2
mov eax, dword [esi + 0x74]
movzx eax, word [eax + 0x60]
mov dword [ebp - 0x24], eax
jmp 0x4f7ff2
xor eax, eax
mov dword [ebp - 0x24], eax
cmp byte [ebx + 0x51], 0
je 0x4f8035
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
je 0x4f8035
mov dword [ebp - 0x28], 2
mov eax, dword [esi + 0x64]
push eax
push 0x20
push 0
lea eax, [ebp - 0x28]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x558fc0]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
cmp dword [ebp - 0x24], 0
jle 0x4f8062
mov eax, dword [esi + 0x64]
push eax
push 0x1f
push 0
lea eax, [ebp - 0x24]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x558fc0]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov eax, dword [0x5594bc]
mov dl, byte [0x4f8224]
cmp dl, byte [eax]
je 0x4f81bd
mov ax, word [ebx + 8]
sub ax, 1
je 0x4f8095
sub ax, 0x18
je 0x4f8095
sub ax, 0x52
je 0x4f8095
sub ax, 0xa
jne 0x4f81bd
mov eax, dword [ebx + 0xc]
dec eax
mov dword [ebp - 0x2c], eax
mov ax, word [ebx + 8]
sub ax, 0x19
je 0x4f80ac
sub ax, 0x5c
jne 0x4f80b9
mov eax, dword [ebp - 0x2c]
sar eax, 1
jns 0x4f80b6
adc eax, 0
mov dword [ebp - 0x2c], eax
cmp byte [ebx + 0xa], 1
jne 0x4f80e3
mov eax, dword [esi + 0x74]
call fcn.004f3474
movzx eax, ax
mov edx, dword [ebx + 0x4c]
lea edx, [edx + edx*2]
cmp eax, edx
jle 0x4f80e3
cmp byte [ebx + 0x38], 0
jne 0x4f80e3
mov eax, dword [ebx + 0x4c]
lea eax, [eax + eax*2]
mov dword [ebp - 0x2c], eax
cmp byte [ebx + 0xa], 1
jne 0x4f811b
cmp byte [ebx + 0x38], 0
jne 0x4f811b
mov ax, word [ebx + 8]
sub ax, 0x19
je 0x4f80ff
sub ax, 0x5c
jne 0x4f810e
cmp dword [ebp - 0x2c], 4
jge 0x4f811b
mov dword [ebp - 0x2c], 4
jmp 0x4f811b
cmp dword [ebp - 0x2c], 2
jge 0x4f811b
mov dword [ebp - 0x2c], 2
mov eax, dword [esi + 0x64]
push eax
push 0x21
push 0
lea eax, [ebp - 0x2c]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x558fc0]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
mov eax, dword [0x5590b4]
cmp word [eax], 0x2328
jb 0x4f81bd
mov eax, dword [esi + 0x74]
call fcn.004f285c
cmp ax, 0x23f0
jb 0x4f81bd
cmp byte [ebx + 0xa], 1
jne 0x4f81bd
cmp dword [ebx + 0x4c], 0
jle 0x4f81bd
mov eax, dword [esi + 0x74]
call fcn.004f285c
cmp ax, 0x23f6
jb 0x4f8184
mov eax, dword [esi + 0x74]
call fcn.004f285c
cmp ax, 0x2710
jbe 0x4f81bd
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0x64]
push eax
push 0xa3
push 0
lea eax, [ebp - 0x2c]
push eax
push 5
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [0x558fc0]
mov eax, dword [eax]
call eax
add esp, 0x18
mov edx, eax
mov eax, esi
call fcn.004f65dc
jmp 0x4f81bd
mov eax, esi
call fcn.004f652c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f81df
mov edx, dword [ebp - 4]
mov eax, dword [0x4aa854]
call fcn.004aac20
ret