Function at 0x4e84e0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x56c35b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xac
push ebx
push ebp
push esi
push edi
xor edi, edi
mov esi, ecx
mov dword [esp + 0x30], edi
mov al, byte [esp + 0x2f]
mov dword [esp + 0xc4], 1
mov byte [esp + 0x10], al
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
lea ecx, [esp + 0x34]
mov byte [esp + 0xc4], 2
call fcn.00531800
push 6
push 0x59c22c
lea ecx, [esp + 0x28]
mov byte [esp + 0xcc], 3
call fcn.005318a0
push 3
lea ecx, [esp + 0xd4]
mov byte [esp + 0xc8], 4
xor ebp, ebp
call fcn.00531ac0
mov bl, al
push 4
and ebx, 0xff
lea ecx, [esp + 0xd4]
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
push 5
add ebx, eax
lea ecx, [esp + 0xd4]
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
add eax, ebx
cmp eax, 0x80101
jg 0x4e885c
je 0x4e8844
add eax, 0xfff7ffff
cmp eax, 6
ja case.default.0x4e9083
jmp dword [eax*4 + 0x4e98c0]
mov dl, byte [esi + 0x11]
lea ecx, [esp + 0x10]
push ecx
push 0x1061
and dl, 1
push 0x1060
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x11]
lea eax, [esp + 0x10]
push eax
push 0x1061
and cl, 2
push 0x1060
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x11]
lea edx, [esp + 0x10]
push edx
push 0x1061
and al, 0x40
push 0x1060
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
push 0x12
push 4
lea ecx, [esp + 0x28]
call fcn.00531ad0
mov al, byte [esi + 0x11]
mov cl, al
shr ecx, 4
and ecx, 3
cmp ecx, 3
ja case.default.0x4e8647
jmp dword [ecx*4 + 0x4e98dc]
test al, 4
jne 0x4e8662
push 0x59
jmp 0x4e8681
test al, 4
jne 0x4e8662
push 0x58
jmp 0x4e8681
test al, 4
je 0x4e8673
push 0x10
push 4
lea ecx, [esp + 0x28]
call fcn.00531ad0
push 0x31
jmp 0x4e8681
push 0x57
jmp 0x4e8681
test al, 4
je 0x4e867f
push 0x54
jmp 0x4e8681
push 0x55
push 5
lea ecx, [esp + 0x28]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.00531810
lea eax, [esp + 0x50]
push eax
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 0xa
cmp eax, ebx
jae 0x4e86c4
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e86e9
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
jmp 0x4e8772
test ebx, ebx
jbe 0x4e8736
cmp ebx, ecx
jne 0x4e8736
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e86fd
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e8736
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e871a
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4e8772
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e8772
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e8752
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x50]
mov byte [esp + 0xc4], 4
test eax, eax
je case.default.0x4e9083
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4e9548
cmp al, 0xff
je 0x4e9548
dec al
mov byte [ecx], al
jmp case.default.0x4e9083
xor edx, edx
mov dl, byte [esi + 0x12]
mov ebp, edx
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [esi + 0x13]
mov ebp, eax
push ebp
lea ecx, [esp + 0x3c]
push 0x59bb6c
push ecx
call fcn.00556aa4
add esp, 0xc
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4e9720
lea edi, [esp + 0x38]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x4e87e7
call fcn.0055636b
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4e96c9
mov al, byte [edi - 1]
test al, al
je 0x4e96c9
cmp al, 0xff
je 0x4e96c9
test ebx, ebx
jne 0x4e96f2
dec al
push ebx
lea ecx, [esp + 0x14]
mov byte [edi - 1], al
call fcn.00404bb0
jmp 0x4e9720
mov dl, byte [esi + 0x11]
lea ecx, [esp + 0x10]
push ecx
push 0x1065
and dl, 8
push 0x1064
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [esi + 0x16]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x572c30]
jmp 0x4e8eca
cmp eax, 0x80201
jg 0x4e8d51
je 0x4e8d2f
add eax, 0xfff7fefe
cmp eax, 0x1a
ja case.default.0x4e9083
jmp dword [eax*4 + 0x4e98ec]
xor ecx, ecx
mov cl, byte [esi + 0x17]
mov ebp, ecx
jmp case.default.0x4e9083
mov al, byte [esi + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 0x20
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x18]
mov dl, byte [esi + 0x19]
mov ebp, ecx
shl ebp, 8
add ebp, edx
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [esi + 0x1d]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
jmp 0x4e8d12
mov dl, byte [esi + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 1
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x13]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 1
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 8
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 2
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 0x40
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x15]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 0x80
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x13]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 4
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 0x40
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
push 0x12
push 4
lea ecx, [esp + 0x28]
call fcn.00531ad0
xor eax, eax
mov al, byte [esi + 0x15]
cmp eax, 0x80
ja case.0x4e8a04.7
xor ecx, ecx
mov cl, byte [eax + 0x4e9978]
jmp dword [ecx*4 + 0x4e9958]
push 0x60
jmp 0x4e8a36
push 0x61
jmp 0x4e8a36
push 0x62
jmp 0x4e8a36
push 0x63
jmp 0x4e8a36
push 0x64
jmp 0x4e8a36
push 0x65
jmp 0x4e8a36
push 0x66
jmp 0x4e8a36
push 0x10
push 4
lea ecx, [esp + 0x28]
call fcn.00531ad0
push 0x31
push 5
lea ecx, [esp + 0x28]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.00531810
lea eax, [esp + 0xb0]
push eax
call fcn.005388b0
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x57217c]
mov ebx, eax
mov byte [esp + 0xc4], 0xb
cmp edi, ebx
jae 0x4e8a7d
mov ebx, edi
lea ecx, [esp + 0x10]
cmp ecx, esi
jne 0x4e8b01
cmp dword [esp + 0x18], ebx
jae 0x4e8a90
call fcn.00556597
lea ecx, [esp + 0x10]
call fcn.00405210
mov eax, dword [esp + 0x18]
sub eax, ebx
cmp eax, edi
jae 0x4e8aa5
mov edi, eax
test edi, edi
jbe 0x4e8ae0
mov edx, dword [esp + 0x14]
sub eax, edi
push eax
lea ecx, [ebx + edx]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00556b00
mov esi, dword [esp + 0x24]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x10]
push 0
push esi
call fcn.00404d70
test al, al
je 0x4e8ae0
push esi
lea ecx, [esp + 0x14]
call fcn.00404d50
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
mov eax, dword [esp + 0xb0]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
test ebx, ebx
jbe 0x4e8b60
cmp ebx, eax
jne 0x4e8b60
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e8b15
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e8b60
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e8b32
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc4], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xb0]
jmp 0x4e877e
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e8b9a
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e8b7c
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.00404d50
mov eax, dword [esp + 0xb0]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 0x20
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 4
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x14]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 0x10
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor ecx, ecx
mov cl, byte [esi + 0x1a]
mov ebp, ecx
sub ebp, 0x28
jmp case.default.0x4e9083
mov al, byte [esi + 0x13]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 0x10
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [esi + 0x14]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 0x80
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x14]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 2
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor edx, edx
mov dl, byte [esi + 0x22]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x572c30]
call fcn.00556e88
jmp 0x4e87ac
mov al, byte [esi + 0x1f]
test al, al
jne 0x4e8d06
mov ebp, 0xfffffd80
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [esi + 0x1b]
lea eax, [eax + eax*4]
lea ecx, [eax + eax*4]
mov eax, 0x80808081
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebp, edx
jmp case.default.0x4e9083
xor edx, edx
mov dl, byte [esi + 0x1c]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x572c30]
jmp 0x4e8eca
mov al, byte [esi + 0x1e]
test al, al
jne 0x4e8d06
mov ebp, 0xfffffd77
jmp case.default.0x4e9083
and eax, 0xff
mov ecx, eax
shl ecx, 6
add ecx, eax
shl ecx, 2
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebp, edx
jmp case.default.0x4e9083
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 1
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
cmp eax, 0x8ff00
jg 0x4e9075
je 0x4e8f11
add eax, 0xfff7fdfe
cmp eax, 0xa
ja case.default.0x4e9083
jmp dword [eax*4 + 0x4e99fc]
mov cl, byte [esi + 0x13]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 2
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x13]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 4
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor ecx, ecx
mov cl, byte [esi + 0x1d]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul qword [0x572c28]
jmp 0x4e8eca
mov al, byte [esi + 0x13]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 8
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 0x10
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [esi + 0x13]
lea eax, [esp + 0x10]
push eax
push 0x1056
and cl, 0x20
push 0x1055
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [esi + 0x13]
lea edx, [esp + 0x10]
push edx
push 0x1056
and al, 0x40
push 0x1055
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [esi + 0x13]
lea ecx, [esp + 0x10]
push ecx
push 0x1056
and dl, 0x80
push 0x1055
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x18]
mov cl, byte [esi + 0x17]
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
mov dword [esp + 0x24], ecx
fmul qword [0x57d5e0]
fild dword [esp + 0x24]
fmul qword [0x574f98]
jmp 0x4e8ec8
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x1a]
mov al, byte [esi + 0x19]
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
mov dword [esp + 0x24], eax
fmul qword [0x572c30]
fild dword [esp + 0x24]
fmul qword [0x5733d0]
faddp st(1)
fstp qword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
push ecx
push edx
lea eax, [esp + 0x40]
push str._.2f
push eax
call fcn.00556aa4
add esp, 0x10
jmp 0x4e87c1
xor ecx, ecx
xor edx, edx
mov cl, byte [esi + 0x1c]
mov dl, byte [esi + 0x1b]
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
mov dword [esp + 0x24], edx
fmul qword [0x572c30]
fild dword [esp + 0x24]
jmp 0x4e8ec2
push 0x12
push 4
lea ecx, [esp + 0x28]
call fcn.00531ad0
xor eax, eax
mov al, byte [0x5ad7c1]
dec eax
cmp eax, 0xe0
ja case.0x4e8f35.2
xor ecx, ecx
mov cl, byte [eax + 0x4e9a40]
jmp dword [ecx*4 + 0x4e9a28]
push 0x59
jmp 0x4e8f4e
push 0x57
jmp 0x4e8f4e
push 0x55
jmp 0x4e8f4e
push 0x54
jmp 0x4e8f4e
push 0x58
push 5
lea ecx, [esp + 0x28]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.00531810
lea eax, [esp + 0xa0]
push eax
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 5
cmp eax, ebx
jae 0x4e8f94
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e8fc8
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
mov eax, dword [esp + 0xa0]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
test ebx, ebx
jbe 0x4e9027
cmp ebx, ecx
jne 0x4e9027
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e8fdc
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e9027
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e8ff9
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc4], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xa0]
jmp 0x4e877e
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e9061
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e9043
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.00404d50
mov eax, dword [esp + 0xa0]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
add eax, 0xfff700ff
cmp eax, 0xd
ja case.default.0x4e9083
jmp dword [eax*4 + 0x4e9b24]
mov dl, byte [0x5ad7c3]
lea ecx, [esp + 0x10]
push ecx
push 0x1107
and dl, 1
push 0x1106
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor eax, eax
xor ecx, ecx
mov al, byte [0x5ad7c9]
mov cl, byte [0x5ad7ca]
mov ebp, eax
shl ebp, 8
add ebp, ecx
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [0x5ad7c6]
sub eax, 0x4b
je 0x4e942f
sub eax, 0x19
je 0x4e931d
push ecx
sub eax, 0x32
mov ecx, esp
je 0x4e920c
mov dword [esp + 0x28], esp
push 6
push 0x5adad0
call fcn.005318a0
lea edx, [esp + 0x80]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 9
cmp eax, ebx
jae 0x4e9129
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e915d
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
mov eax, dword [esp + 0x80]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
test ebx, ebx
jbe 0x4e91bc
cmp ebx, ecx
jne 0x4e91bc
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e9171
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e91bc
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e918e
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc4], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x80]
jmp 0x4e877e
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e91f8
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e91d8
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x80]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
mov dword [esp + 0x28], esp
push 6
push 0x5adac0
call fcn.005318a0
lea edx, [esp + 0x60]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 8
cmp eax, ebx
jae 0x4e9243
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e9274
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
mov eax, dword [esp + 0x60]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
test ebx, ebx
jbe 0x4e92d0
cmp ebx, ecx
jne 0x4e92d0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e9288
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e92d0
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e92a5
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc4], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x60]
jmp 0x4e877e
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e930c
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e92ec
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x60]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x5adad0
call fcn.005318a0
lea edx, [esp + 0x70]
push edx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 6
cmp eax, ebx
jae 0x4e9357
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e9388
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
mov eax, dword [esp + 0x70]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
test ebx, ebx
jbe 0x4e93e4
cmp ebx, ecx
jne 0x4e93e4
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e939c
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e93e4
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e93b9
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc4], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x70]
jmp 0x4e877e
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e941e
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e9400
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x14]
call fcn.00404d50
mov eax, dword [esp + 0x70]
mov byte [esp + 0xc4], 4
jmp 0x4e877e
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x5adac8
call fcn.005318a0
lea ecx, [esp + 0x90]
push ecx
call fcn.005388b0
add esp, 8
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x57217c]
mov ebx, ecx
mov byte [esp + 0xc4], 7
cmp eax, ebx
jae 0x4e946c
mov ebx, eax
lea edx, [esp + 0x10]
cmp edx, esi
jne 0x4e9491
push eax
push ebx
lea ecx, [esp + 0x18]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x18]
call fcn.00404c30
jmp 0x4e951a
test ebx, ebx
jbe 0x4e94de
cmp ebx, ecx
jne 0x4e94de
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e94a5
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e94de
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x4e94c2
mov eax, 0x572184
mov dword [esp + 0x14], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x18], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x1c], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4e951a
push 1
push ebx
lea ecx, [esp + 0x18]
call fcn.00404d70
test al, al
je 0x4e951a
mov esi, dword [esi + 4]
test esi, esi
jne 0x4e94fa
mov esi, 0x572184
mov edi, dword [esp + 0x14]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x90]
mov byte [esp + 0xc4], 4
test eax, eax
je case.default.0x4e9083
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4e9548
cmp al, 0xff
je 0x4e9548
dec al
mov byte [ecx], al
jmp case.default.0x4e9083
push ecx
call fcn.00556360
add esp, 4
jmp case.default.0x4e9083
mov al, byte [0x5ad7c3]
lea edx, [esp + 0x10]
shr al, 1
push edx
push 0x1107
and al, 1
push 0x1106
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [0x5ad7da]
lea ecx, [esp + 0x10]
shr dl, 2
push ecx
push 0x1107
and dl, 1
push 0x1106
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [0x5ad7c3]
lea eax, [esp + 0x10]
shr cl, 3
push eax
push 0x1107
and cl, 1
push 0x1106
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [0x5ad7c3]
lea edx, [esp + 0x10]
shr al, 5
push edx
push 0x1107
and al, 1
push 0x1106
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [0x5ad7c3]
lea ecx, [esp + 0x10]
shr dl, 6
push ecx
push 0x1107
and dl, 1
push 0x1106
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [0x5ad7c4]
lea eax, [esp + 0x10]
push eax
push 0x1107
shr cl, 7
push 0x1106
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov al, byte [0x5ad7c1]
lea edx, [esp + 0x10]
shr al, 1
push edx
push 0x1107
and al, 1
push 0x1106
push eax
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov dl, byte [0x5ad7c3]
lea ecx, [esp + 0x10]
shr dl, 4
push ecx
push 0x1107
and dl, 1
push 0x1106
push edx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
mov cl, byte [0x5ad7c3]
lea eax, [esp + 0x10]
shr cl, 2
push eax
push 0x1107
and cl, 1
push 0x1106
push ecx
mov ecx, esi
call fcn.004e82c0
jmp case.default.0x4e9083
xor edx, edx
mov dl, byte [esi + 0xf]
mov ebp, edx
jmp case.default.0x4e9083
xor eax, eax
mov al, byte [esi + 0x10]
jmp 0x4e87ac
test ebx, ebx
jne 0x4e96da
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
jmp 0x4e9720
mov eax, dword [esp + 0x1c]
cmp eax, 0x1f
ja 0x4e96e7
cmp eax, ebx
jae 0x4e9700
push 1
lea ecx, [esp + 0x14]
call fcn.00404bb0
push ebx
lea ecx, [esp + 0x14]
call fcn.00405100
mov edi, dword [esp + 0x14]
mov ecx, ebx
lea esi, [esp + 0x38]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], ebx
mov byte [ebx + eax], 0
mov ebp, dword [esp + 0xcc]
mov cl, byte [esp + 0x10]
mov eax, dword [esp + 0x18]
xor edi, edi
mov byte [ebp], cl
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x57217c]
mov ebx, eax
cmp esi, ebx
jae 0x4e974b
mov ebx, esi
lea edx, [esp + 0x10]
cmp ebp, edx
jne 0x4e97ad
cmp ebx, edi
jbe 0x4e975c
call fcn.00556597
mov ecx, ebp
call fcn.00405210
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4e976e
mov esi, eax
cmp esi, edi
jbe 0x4e97a1
mov ecx, dword [ebp + 4]
sub eax, esi
add ebx, ecx
push eax
lea ecx, [esi + ebx]
push ecx
push ebx
call fcn.00556b00
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push edi
push ebx
call fcn.00404d70
test al, al
je 0x4e97a1
push ebx
mov ecx, ebp
call fcn.00404d50
mov ecx, ebp
call fcn.00405210
jmp 0x4e9834
cmp ebx, edi
jbe 0x4e97f9
cmp ebx, eax
jne 0x4e97f9
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x4e97c2
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x4e97f9
push 1
mov ecx, ebp
call fcn.00404bb0
mov eax, dword [esp + 0x14]
cmp eax, edi
jne 0x4e97de
mov eax, 0x572184
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [ebp + 4], eax
mov dword [ebp + 8], edx
mov dword [ebp + 0xc], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4e9834
push 1
push ebx
mov ecx, ebp
call fcn.00404d70
test al, al
je 0x4e9834
mov esi, dword [esp + 0x14]
cmp esi, edi
jne 0x4e9814
mov esi, 0x572184
mov edi, dword [ebp + 4]
mov ecx, ebx
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp + 4]
mov dword [ebp + 8], ebx
add ebx, eax
xor edi, edi
mov byte [ebx], 0
mov dword [esp + 0x30], 1
lea ecx, [esp + 0x20]
mov byte [esp + 0xc4], 3
call fcn.00531940
lea ecx, [esp + 0x34]
mov byte [esp + 0xc4], 2
call fcn.00531940
mov eax, dword [esp + 0x14]
cmp eax, edi
je 0x4e9883
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4e987a
cmp al, 0xff
je 0x4e987a
dec al
mov byte [ecx], al
jmp 0x4e9883
push ecx
call fcn.00556360
add esp, 4
lea ecx, [esp + 0xd0]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], edi
mov byte [esp + 0xc4], 0
call fcn.00531940
mov ecx, dword [esp + 0xbc]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xb8
ret 8