Function at 0x459ac0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x564427
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x64
push ebx
push esi
push edi
xor edi, edi
mov esi, ecx
mov dword [esp + 0x1c], edi
mov al, byte [esp + 0x13]
mov dword [esp + 0x78], 1
mov byte [esp + 0x2c], al
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 2
call fcn.00531800
push 6
push 0x59c22c
lea ecx, [esp + 0x1c]
mov byte [esp + 0x80], 3
call fcn.005318a0
push 3
lea ecx, [ebp + 0xc]
mov byte [esp + 0x7c], 4
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.00531ac0
mov bl, al
push 4
and ebx, 0xff
lea ecx, [ebp + 0xc]
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
push 5
add ebx, eax
lea ecx, [ebp + 0xc]
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
add eax, ebx
cmp eax, 0x60202
jg 0x45a18a
je 0x45a161
cmp eax, 0x6010a
jg 0x459dd0
je 0x459db5
cmp eax, 0x60103
jg 0x459cc5
je 0x459c8e
cmp eax, 0x60004
jg 0x459c2d
je 0x459c12
sub eax, 0x60001
je 0x459bf8
dec eax
je 0x459bde
dec eax
jne case.default.0x45a198
mov dl, byte [esi + 0x11]
lea ecx, [esp + 0x2c]
push ecx
push 0x1065
and dl, 4
push 0x1064
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x11]
lea eax, [esp + 0x2c]
push eax
push 0x1061
push 0x1060
and cl, 2
jmp 0x45a08e
mov al, byte [esi + 0x11]
lea edx, [esp + 0x2c]
push edx
push 0x1056
and al, 1
push 0x1055
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x11]
lea ecx, [esp + 0x2c]
push ecx
push 0x1150
and dl, 8
push 0x1149
push edx
jmp 0x45a08f
sub eax, 0x60101
je 0x459c79
dec eax
jne case.default.0x45a198
xor eax, eax
mov al, byte [esi + 0x14]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x575508]
fsub qword [0x575500]
fstp qword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push eax
push ecx
lea edx, [esp + 0x64]
push str._.2f
push edx
call fcn.00556aa4
add esp, 0x10
jmp 0x45a0ad
xor ecx, ecx
mov cl, byte [esi + 0x13]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fmul qword [0x5754f8]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x18]
lea edx, [eax + eax*4]
lea ecx, [eax + edx*2]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x3e3
sub eax, edx
mov dword [esp + 0x18], eax
jmp case.default.0x45a198
add eax, 0xfff9fefc
cmp eax, 5
ja case.default.0x45a198
jmp dword [eax*4 + 0x45a928]
xor ecx, ecx
mov cl, byte [esi + 0x17]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c48
xor eax, eax
mov al, byte [esi + 0x1b]
lea edx, [eax + eax*4]
lea ecx, [eax + edx*2]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x3e3
sub eax, edx
mov dword [esp + 0x18], eax
jmp case.default.0x45a198
xor ecx, ecx
mov cl, byte [esi + 0x16]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c48
xor eax, eax
mov al, byte [esi + 0x1a]
lea edx, [eax + eax*4]
lea ecx, [eax + edx*2]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x3e3
sub eax, edx
mov dword [esp + 0x18], eax
jmp case.default.0x45a198
xor ecx, ecx
mov cl, byte [esi + 0x15]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c48
xor eax, eax
mov al, byte [esi + 0x19]
lea edx, [eax + eax*4]
lea ecx, [eax + edx*2]
lea ecx, [ecx + ecx*4]
lea eax, [eax + ecx*4]
lea ecx, [eax + eax*2]
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x3e3
sub eax, edx
mov dword [esp + 0x18], eax
jmp case.default.0x45a198
mov dl, byte [esi + 0x1c]
lea ecx, [esp + 0x2c]
push ecx
push 0x1288
and dl, 1
push 0x1287
push edx
jmp 0x45a08f
add eax, 0xfff9fef5
cmp eax, 0xf6
ja case.default.0x45a198
xor ecx, ecx
mov cl, byte [eax + 0x45a978]
jmp dword [ecx*4 + 0x45a940]
mov al, byte [esi + 0x1c]
lea edx, [esp + 0x2c]
push edx
push 0x1065
and al, 2
push 0x1064
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x1d]
lea ecx, [esp + 0x2c]
push ecx
push 0x1107
and dl, 1
push 0x1106
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x1d]
lea eax, [esp + 0x2c]
push eax
push 0x1107
push 0x1106
and cl, 2
jmp 0x45a08e
mov al, byte [esi + 0x1d]
lea edx, [esp + 0x2c]
push edx
push 0x1107
and al, 4
push 0x1106
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x1d]
lea ecx, [esp + 0x2c]
push ecx
push 0x1107
and dl, 8
push 0x1106
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x1e]
lea eax, [esp + 0x2c]
push eax
push 0x1288
push 0x1287
and cl, 1
jmp 0x45a08e
mov al, byte [esi + 0x1e]
shr eax, 1
and eax, 3
cmp eax, 3
ja case.default.0x459e9a
jmp dword [eax*4 + 0x45aa70]
push 0x11
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 0x73
jmp 0x459ee3
push 0x13
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 7
jmp 0x459ee3
push 0x13
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 8
jmp 0x459ee3
push 0x12
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 0x66
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.00531810
lea eax, [esp + 0x40]
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 + 0x78], 5
cmp edi, ebx
jae 0x459f24
mov ebx, edi
lea ecx, [esp + 0x2c]
cmp ecx, esi
jne 0x459f98
cmp dword [esp + 0x34], ebx
jae 0x459f37
call fcn.00556597
lea ecx, [esp + 0x2c]
call fcn.00405210
mov eax, dword [esp + 0x34]
sub eax, ebx
cmp eax, edi
jae 0x459f4c
mov edi, eax
test edi, edi
jbe 0x459f86
mov edx, dword [esp + 0x30]
sub eax, edi
add ebx, edx
push eax
lea ecx, [edi + ebx]
push ecx
push ebx
call fcn.00556b00
mov esi, dword [esp + 0x40]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x2c]
push 0
push esi
call fcn.00404d70
test al, al
je 0x459f86
push esi
lea ecx, [esp + 0x30]
call fcn.00404d50
push 0
push 0
lea ecx, [esp + 0x34]
call fcn.00404c30
jmp 0x45a021
test ebx, ebx
jbe 0x459fe5
cmp ebx, eax
jne 0x459fe5
mov eax, dword [esi + 4]
test eax, eax
jne 0x459fac
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x459fe5
push 1
lea ecx, [esp + 0x30]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x459fc9
mov eax, 0x572184
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x34], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x38], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45a021
push 1
push ebx
lea ecx, [esp + 0x34]
call fcn.00404d70
test al, al
je 0x45a021
mov esi, dword [esi + 4]
test esi, esi
jne 0x45a001
mov esi, 0x572184
mov edi, dword [esp + 0x30]
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 + 0x30]
mov dword [esp + 0x34], ebx
mov byte [ecx + ebx], 0
mov eax, dword [esp + 0x40]
mov byte [esp + 0x78], 4
test eax, eax
je case.default.0x45a198
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45a68d
cmp al, 0xff
je 0x45a68d
dec al
mov byte [ecx], al
jmp case.default.0x45a198
mov al, byte [esi + 0x1e]
lea edx, [esp + 0x2c]
push edx
push 0x1061
and al, 8
push 0x1060
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x1e]
lea ecx, [esp + 0x2c]
push ecx
push 0x1061
and dl, 0x10
push 0x1060
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x1e]
lea eax, [esp + 0x2c]
push eax
push 0x1288
push 0x1287
and cl, 0x20
push ecx
mov ecx, esi
call fcn.004598a0
mov eax, dword [esp + 0x18]
lea ecx, [esp + 0x5c]
push eax
push 0x59bb6c
push ecx
call fcn.00556aa4
add esp, 0xc
mov ecx, dword [esp + 0x34]
test ecx, ecx
jne 0x45a79f
lea edi, [esp + 0x5c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x45a0d3
call fcn.0055636b
mov edi, dword [esp + 0x30]
xor ecx, ecx
cmp edi, ecx
je 0x45a736
mov al, byte [edi - 1]
test al, al
je 0x45a736
cmp al, 0xff
je 0x45a736
cmp ebx, ecx
jne 0x45a767
dec al
mov byte [edi - 1], al
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], ecx
jmp 0x45a7a3
mov al, byte [esi + 0x1e]
lea edx, [esp + 0x2c]
push edx
push 0x1288
and al, 0x40
push 0x1287
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x1e]
lea ecx, [esp + 0x2c]
push ecx
push 0x1168
and dl, 0x80
push 0x1169
push edx
jmp 0x45a08f
xor eax, eax
mov al, byte [esi + 0x13]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754f0]
jmp 0x459c54
mov al, byte [esi + 0x14]
cmp al, 0xff
je 0x45a36d
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
add eax, 0xfff9fdfd
cmp eax, 0x19
ja case.default.0x45a198
jmp dword [eax*4 + 0x45aa80]
xor eax, eax
mov al, byte [esi + 0x15]
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*8]
shl ecx, 1
sub ecx, eax
lea ecx, [eax + ecx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x16]
cmp al, 0xff
je 0x459c58
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x17]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
lea ecx, [eax + edx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x18]
cmp al, 0xff
je 0x45a36d
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x19]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
lea ecx, [eax + edx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x1a]
cmp al, 0xff
je 0x45a36d
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x1b]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
lea ecx, [eax + edx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x1c]
cmp al, 0xff
je 0x45a36d
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x1d]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
lea ecx, [eax + edx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x1e]
cmp al, 0xff
jne 0x45a382
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0x408f3800
jmp 0x459c58
and eax, 0xff
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fmul qword [0x5754e8]
fsub qword [str.333333]
jmp 0x459c54
xor eax, eax
mov al, byte [esi + 0x1f]
lea ecx, [eax + eax*4]
lea edx, [ecx + ecx*8]
shl edx, 1
sub edx, eax
lea ecx, [eax + edx*4]
mov eax, 0x80808081
shl ecx, 1
imul ecx
add edx, ecx
mov ecx, 0x3d9
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
sub ecx, edx
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
jmp 0x459c54
mov al, byte [esi + 0x21]
lea edx, [esp + 0x2c]
push edx
push 0x1107
and al, 1
push 0x1106
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x21]
lea ecx, [esp + 0x2c]
push ecx
push 0x1107
and dl, 2
push 0x1106
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x21]
lea eax, [esp + 0x2c]
push eax
push 0x1107
push 0x1106
and cl, 8
jmp 0x45a08e
mov al, byte [esi + 0x21]
lea edx, [esp + 0x2c]
push edx
push 0x1107
and al, 4
push 0x1106
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x21]
lea ecx, [esp + 0x2c]
push ecx
push 0x1107
and dl, 0x10
push 0x1106
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x21]
lea eax, [esp + 0x2c]
push eax
push 0x1107
push 0x1106
jmp 0x45a08b
mov al, byte [esi + 0x20]
lea edx, [esp + 0x2c]
push edx
push 0x1056
and al, 1
push 0x1055
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x23]
lea ecx, [esp + 0x2c]
push ecx
push 0x1056
and dl, 1
push 0x1055
push edx
jmp 0x45a08f
mov al, byte [esi + 0x22]
shr eax, 1
and eax, 3
cmp eax, 3
ja case.default.0x45a4b8
jmp dword [eax*4 + 0x45aae8]
push 0x11
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 0x73
jmp 0x45a501
push 0x13
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 7
jmp 0x45a501
push 0x13
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 8
jmp 0x45a501
push 0x12
push 4
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push 0x66
push 5
lea ecx, [esp + 0x1c]
call fcn.00531ad0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x50]
push ecx
call fcn.005388b0
add esp, 8
mov esi, eax
mov eax, dword [esi + 8]
mov edi, dword [0x57217c]
mov ebx, eax
mov byte [esp + 0x78], 6
cmp edi, ebx
jae 0x45a542
mov ebx, edi
lea edx, [esp + 0x2c]
cmp edx, esi
jne 0x45a5b6
cmp dword [esp + 0x34], ebx
jae 0x45a555
call fcn.00556597
lea ecx, [esp + 0x2c]
call fcn.00405210
mov eax, dword [esp + 0x34]
sub eax, ebx
cmp eax, edi
jae 0x45a56a
mov edi, eax
test edi, edi
jbe 0x45a5a4
mov ecx, dword [esp + 0x30]
sub eax, edi
add ecx, ebx
push eax
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00556b00
mov esi, dword [esp + 0x40]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x2c]
push 0
push esi
call fcn.00404d70
test al, al
je 0x45a5a4
push esi
lea ecx, [esp + 0x30]
call fcn.00404d50
push 0
push 0
lea ecx, [esp + 0x34]
call fcn.00404c30
jmp 0x45a665
xor edi, edi
cmp ebx, edi
jbe 0x45a62b
cmp ebx, eax
jne 0x45a62b
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x45a5cc
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x45a62b
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x45a5f7
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45a5ee
cmp al, 0xff
je 0x45a5ee
dec al
mov byte [ecx], al
jmp 0x45a5f7
push ecx
call fcn.00556360
add esp, 4
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x45a60f
mov eax, 0x572184
mov dword [esp + 0x30], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x34], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x38], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x45a665
push 1
push ebx
lea ecx, [esp + 0x34]
call fcn.00404d70
test al, al
je 0x45a665
mov esi, dword [esi + 4]
test esi, esi
jne 0x45a647
mov esi, 0x572184
mov edi, dword [esp + 0x30]
mov ecx, ebx
mov edx, ecx
push ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x30]
call fcn.00404d50
mov eax, dword [esp + 0x50]
mov byte [esp + 0x78], 4
test eax, eax
je case.default.0x45a198
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45a68d
cmp al, 0xff
je 0x45a68d
dec al
mov byte [ecx], al
jmp case.default.0x45a198
push ecx
call fcn.00556360
add esp, 4
jmp case.default.0x45a198
mov cl, byte [esi + 0x23]
lea eax, [esp + 0x2c]
push eax
push 0x1056
push 0x1055
jmp 0x45a08b
mov al, byte [esi + 0x23]
lea edx, [esp + 0x2c]
push edx
push 0x1060
and al, 0x40
push 0x1061
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x23]
lea ecx, [esp + 0x2c]
push ecx
push 0x1168
and dl, 0x80
push 0x1169
push edx
jmp 0x45a08f
mov cl, byte [esi + 0x23]
lea eax, [esp + 0x2c]
push eax
push 0x1061
push 0x1060
and cl, 0x10
jmp 0x45a08e
mov al, byte [esi + 0x1a]
lea edx, [esp + 0x2c]
push edx
push 0x1168
and al, 0x10
push 0x1309
push eax
jmp 0x45a08f
mov dl, byte [esi + 0x1a]
lea ecx, [esp + 0x2c]
push ecx
push 0x1168
and dl, 0x20
push 0x1309
push edx
jmp 0x45a08f
cmp ebx, ecx
jne 0x45a74f
push 1
lea ecx, [esp + 0x30]
call fcn.00404bb0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x45a7a3
mov eax, dword [esp + 0x38]
cmp eax, 0x1f
ja 0x45a75c
cmp eax, ebx
jae 0x45a775
push 1
lea ecx, [esp + 0x30]
call fcn.00404bb0
push ebx
lea ecx, [esp + 0x30]
call fcn.00405100
mov edi, dword [esp + 0x30]
mov ecx, ebx
lea esi, [esp + 0x5c]
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 + 0x30]
mov dword [esp + 0x34], ebx
mov byte [eax + ebx], 0
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x45a7a3
mov eax, dword [esp + 0x30]
mov ebx, dword [ebp + 8]
mov dl, byte [esp + 0x2c]
mov edi, ecx
mov byte [ebx], dl
xor edx, edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
mov esi, dword [0x57217c]
cmp esi, edi
mov dword [esp + 0x18], edi
jae 0x45a7cd
mov edi, esi
mov dword [esp + 0x18], edi
lea edx, [esp + 0x2c]
cmp ebx, edx
jne 0x45a82d
test edi, edi
jbe 0x45a7de
call fcn.00556597
mov ecx, ebx
call fcn.00405210
mov eax, dword [ebx + 8]
sub eax, edi
cmp eax, esi
jae 0x45a7f0
mov esi, eax
test esi, esi
jbe 0x45a824
mov ecx, dword [ebx + 4]
sub eax, esi
add ecx, edi
push eax
lea edx, [ecx + esi]
push edx
push ecx
call fcn.00556b00
mov edi, dword [ebx + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebx
push 0
push edi
call fcn.00404d70
test al, al
je 0x45a824
push edi
mov ecx, ebx
call fcn.00404d50
mov ecx, ebx
call fcn.00405210
jmp 0x45a8ab
xor esi, esi
cmp edi, esi
jbe 0x45a86c
cmp edi, ecx
jne 0x45a86c
cmp eax, esi
mov edx, 0x572184
je 0x45a842
mov edx, eax
cmp byte [edx - 1], 0xfe
jae 0x45a86c
cmp eax, esi
mov dword [ebx + 4], esi
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
jne 0x45a85a
mov eax, 0x572184
mov edx, dword [esp + 0x38]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
inc byte [eax - 1]
jmp 0x45a8ad
push 1
push edi
mov ecx, ebx
call fcn.00404d70
test al, al
je 0x45a8ad
mov eax, dword [esp + 0x30]
cmp eax, esi
mov esi, 0x572184
je 0x45a889
mov esi, eax
mov eax, dword [esp + 0x18]
mov edi, dword [ebx + 4]
mov ecx, eax
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 ecx, dword [ebx + 4]
mov dword [ebx + 8], eax
add eax, ecx
mov byte [eax], 0
xor esi, esi
mov dword [esp + 0x1c], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0x78], 3
call fcn.00531940
lea ecx, [esp + 0x20]
mov byte [esp + 0x78], 2
call fcn.00531940
mov eax, dword [esp + 0x30]
cmp eax, esi
je 0x45a8f6
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x45a8ed
cmp al, 0xff
je 0x45a8ed
dec al
mov byte [ecx], al
jmp 0x45a8f6
push ecx
call fcn.00556360
add esp, 4
lea ecx, [ebp + 0xc]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov byte [esp + 0x78], 0
call fcn.00531940
mov ecx, dword [esp + 0x70]
pop edi
mov eax, ebx
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8