Function at 0x543e90
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x6c7faf
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x6c
push ebx
xor ebx, ebx
push esi
push edi
mov esi, ecx
mov dword [esp + 0x30], ebx
mov al, byte [esp + 0x13]
mov dword [esp + 0x80], 1
mov byte [esp + 0x34], al
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
push 6
push 0x7147a4
lea ecx, [esp + 0x28]
mov byte [esp + 0x88], 2
call fcn.0061d820
push 4
lea ecx, [ebp + 0xc]
mov byte [esp + 0x84], 3
call fcn.0061daa0
push 5
lea ecx, [ebp + 0xc]
mov byte [esp + 0x28], al
call fcn.0061daa0
mov byte [esp + 0x14], al
mov eax, dword [esp + 0x24]
and eax, 0xff
cmp eax, 8
ja case.default.0x543f43
jmp dword [eax*4 + 0x54583c]
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0x21
ja case.default.0x543f43
jmp dword [eax*4 + 0x545860]
add esi, 8
push 5
mov ecx, esi
call fcn.0061daa0
push 6
mov ecx, esi
mov bl, al
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
lea eax, [ecx*8]
sub eax, ecx
lea edx, [eax + eax*2]
mov eax, 0x80808081
lea esi, [ecx + edx*2]
shl esi, 1
imul esi
mov ecx, edx
add ecx, esi
sar ecx, 7
mov eax, ecx
shr eax, 0x1f
add ecx, eax
jmp 0x544812
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
mov eax, 0x80808081
lea ecx, [ecx + ecx*4]
shl ecx, 2
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov ebx, edx
jmp case.default.0x543f43
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
lea ecx, [esp + 0x34]
push ecx
push 4
push 3
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea edx, [esp + 0x34]
push edx
push 4
push 3
jmp 0x544f70
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
cmp al, 0xfd
jbe 0x544029
push 0x63
jmp 0x54402b
push 0x64
push 5
lea ecx, [esp + 0x28]
call fcn.0061dbc0
push ecx
lea eax, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x48]
push ecx
call fcn.0061ca80
add esp, 8
mov edi, eax
mov ecx, dword [edi + 8]
mov eax, dword [0x6dd1fc]
mov esi, ecx
mov byte [esp + 0x80], 4
cmp eax, esi
mov dword [esp + 0x14], esi
jae 0x544076
mov esi, eax
mov dword [esp + 0x14], esi
lea edx, [esp + 0x34]
cmp edx, edi
jne 0x5440ea
mov edi, eax
mov eax, dword [esp + 0x3c]
cmp eax, esi
jae 0x54408d
call fcn.006a6707
lea ecx, [esp + 0x34]
call fcn.00414b70
mov eax, dword [esp + 0x3c]
sub eax, esi
cmp eax, edi
jae 0x5440a2
mov edi, eax
test edi, edi
jbe 0x5440dc
mov ecx, dword [esp + 0x38]
sub eax, edi
add ecx, esi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x48]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x34]
push 0
push esi
call fcn.00414230
test al, al
je 0x5440dc
push esi
lea ecx, [esp + 0x38]
call fcn.00414210
lea ecx, [esp + 0x34]
call fcn.00414b70
jmp 0x5441ff
test esi, esi
jbe 0x544160
cmp esi, ecx
jne 0x544160
mov eax, dword [edi + 4]
test eax, eax
jne 0x5440fe
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x544160
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x544127
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x54411e
cmp al, 0xff
je 0x54411e
dec al
mov byte [ecx], al
jmp 0x544127
push ecx
call fcn.006a64d0
add esp, 4
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov eax, dword [edi + 4]
cmp eax, ecx
jne 0x544141
mov eax, 0x6dd1f8
mov dword [esp + 0x38], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x40], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x5441ff
lea ecx, [esp + 0x34]
call fcn.00414a50
cmp eax, esi
jae 0x544172
call fcn.006a64db
mov edx, dword [esp + 0x38]
test edx, edx
je 0x54419a
mov al, byte [edx - 1]
test al, al
je 0x54419a
cmp al, 0xff
je 0x54419a
test esi, esi
jne 0x5441c3
dec al
push esi
lea ecx, [esp + 0x38]
mov byte [edx - 1], al
call fcn.004138c0
jmp 0x5441ff
test esi, esi
jne 0x5441ab
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
jmp 0x5441ff
mov eax, dword [esp + 0x40]
cmp eax, 0x1f
ja 0x5441b8
cmp eax, esi
jae 0x5441d1
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
push esi
lea ecx, [esp + 0x38]
call fcn.00414a60
mov edx, dword [esp + 0x38]
mov esi, dword [edi + 4]
test esi, esi
jne 0x5441dd
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x14]
mov edi, edx
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 [esp + 0x38]
mov dword [esp + 0x3c], eax
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x48]
mov byte [esp + 0x80], 3
test ecx, ecx
je case.default.0x543f43
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x544f4f
cmp al, 0xff
je 0x544f4f
dec al
mov byte [ecx], al
jmp case.default.0x543f43
add esi, 8
push 0xa
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 9
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6e1af0]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae8]
fadd qword [esp + 0x14]
jmp 0x5454e0
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 5
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
lea edx, [esp + 0x34]
lea ecx, [esi + 8]
push edx
push 0xd4
push 0xd3
push 7
call fcn.0061daa0
and al, 0x10
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea eax, [esp + 0x34]
lea ecx, [esi + 8]
push eax
push 0xd4
push 0xd3
push 7
call fcn.0061daa0
and al, 0x20
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea ecx, [esp + 0x34]
push ecx
push 0xd4
push 0xd3
push 7
jmp 0x544f72
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
sub eax, 0x28
mov ebx, eax
jmp case.default.0x543f43
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
lea edx, [esp + 0x34]
push edx
push 4
push 3
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 1
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae0]
jmp 0x5454e0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae0]
jmp 0x5454e0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl eax, 5
add eax, ecx
lea ecx, [eax + eax*2]
jmp 0x54515b
lea ecx, [esp + 0x34]
push ecx
push 0x68
push 0x67
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 1
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
add esi, 8
push 5
mov ecx, esi
call fcn.0061daa0
mov dl, al
push 6
and edx, 0xff
mov ecx, esi
shl edx, 8
mov dword [esp + 0x28], edx
call fcn.0061daa0
mov ecx, dword [esp + 0x24]
and eax, 0xff
add ecx, eax
mov eax, 0x91a2b3c5
imul ecx
add edx, ecx
sar edx, 0xb
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov byte [esp + 0x24], dl
mov ecx, 0xe10
cdq
idiv ecx
mov eax, 0x88888889
mov ecx, edx
imul ecx
add edx, ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, ecx
mov byte [esp + 0x25], dl
mov ecx, 0x3c
cdq
idiv ecx
mov byte [esp + 0x26], dl
mov edx, dword [esp + 0x26]
mov eax, dword [esp + 0x25]
mov ecx, dword [esp + 0x24]
and edx, 0xff
and eax, 0xff
push edx
and ecx, 0xff
push eax
push ecx
lea edx, [esp + 0x70]
push str._02d:_02d:_02d
push edx
call fcn.006a6fa5
lea edi, [esp + 0x78]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0xfffffffd
mov dword [esp + 0x14], ecx
jbe 0x54454e
call fcn.006a64db
mov edi, dword [esp + 0x38]
xor ecx, ecx
cmp edi, ecx
je 0x544584
mov al, byte [edi - 1]
test al, al
je 0x544584
cmp al, 0xff
je 0x544584
mov edx, dword [esp + 0x14]
cmp edx, ecx
jne 0x544581
dec al
mov byte [edi - 1], al
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
jmp case.default.0x543f43
push edx
jmp 0x5445b5
mov esi, dword [esp + 0x14]
cmp esi, ecx
jne 0x54459c
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
jmp case.default.0x543f43
mov eax, dword [esp + 0x40]
cmp eax, 0x1f
ja 0x5445a9
cmp eax, esi
jae 0x5445c2
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
push esi
lea ecx, [esp + 0x38]
call fcn.00414a60
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
lea esi, [esp + 0x64]
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 [esp + 0x38]
mov dword [esp + 0x3c], eax
mov byte [eax + ecx], 0
jmp case.default.0x543f43
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ad8]
jmp 0x5454e0
lea edx, [esp + 0x34]
push edx
push 0x76
push 0x71
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x20
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea eax, [esp + 0x34]
push eax
jmp 0x544612
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0x13
ja case.default.0x543f43
jmp dword [eax*4 + 0x5458e8]
lea edx, [esp + 0x34]
lea ecx, [esi + 8]
push edx
push 0x6a
push 0x69
push 8
call fcn.0061daa0
and al, 0x80
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea ebx, [esi + 8]
push 7
mov ecx, ebx
call fcn.0061daa0
cmp al, 0x80
push 7
mov ecx, ebx
jae 0x5446e1
call fcn.0061daa0
and eax, 0xff
push 8
mov ecx, eax
shl ecx, 7
sub ecx, eax
mov eax, 0x81020409
shl ecx, 5
imul ecx
mov esi, edx
add esi, ecx
sar esi, 6
mov ecx, esi
shr ecx, 0x1f
add esi, ecx
mov ecx, ebx
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ebx, edx
add edx, esi
shr ebx, 0x1f
add ebx, edx
jmp case.default.0x543f43
call fcn.0061daa0
and eax, 0xff
push 8
mov ecx, eax
shl eax, 7
sub eax, ecx
mov ecx, ebx
shl eax, 5
sub eax, 0x7f
cdq
and edx, 0x7f
add eax, edx
mov esi, eax
sar esi, 7
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, esi
lea ebx, [eax + edx - 0x1000]
jmp case.default.0x543f43
lea edx, [esp + 0x34]
push edx
jmp 0x544f6c
lea eax, [esp + 0x34]
push eax
push 0x6a
push 0x69
push 9
jmp 0x544f72
lea ecx, [esp + 0x34]
push ecx
push 0x6a
push 0x69
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x10
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
lea edx, [esp + 0x34]
push edx
push 0x6a
push 0x69
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x10
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
push 9
jmp 0x545145
add esi, 8
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov edx, ebx
shr edx, 0x1f
add ebx, edx
jmp 0x544fb3
add esi, 8
push 5
mov ecx, esi
call fcn.0061daa0
push 6
mov ecx, esi
mov bl, al
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
lea eax, [ecx*8]
sub eax, ecx
lea eax, [eax + eax*2]
lea esi, [ecx + eax*2]
mov eax, 0x80808081
shl esi, 1
imul esi
mov ecx, edx
add ecx, esi
sar ecx, 7
mov edx, ecx
shr edx, 0x1f
add ecx, edx
movsx edx, bl
mov eax, edx
shl eax, 4
add eax, edx
lea eax, [eax + eax*8]
lea eax, [eax + eax*8]
lea esi, [edx + eax*4]
mov eax, 0x81020409
shl esi, 1
imul esi
add edx, esi
sar edx, 6
mov ebx, edx
add edx, ecx
shr ebx, 0x1f
add ebx, edx
jmp case.default.0x543f43
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
add esi, 8
push 0xa
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 9
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6e1af0]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae8]
fadd qword [esp + 0x14]
jmp 0x5454e0
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 5
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
lea ecx, [esp + 0x34]
push ecx
jmp 0x544360
mov edx, dword [esp + 0x14]
and edx, 0xff
lea eax, [edx - 1]
cmp eax, 0xd
ja case.default.0x543f43
jmp dword [eax*4 + 0x545938]
lea eax, [esp + 0x34]
push eax
jmp 0x543fec
lea ecx, [esp + 0x34]
push ecx
push 4
push 3
jmp 0x544f70
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
fmul qword [0x6e0950]
jmp 0x5454e0
lea eax, [esp + 0x34]
push eax
jmp 0x544778
lea ecx, [esp + 0x34]
push ecx
push 0x6a
push 0x69
push 0xa
jmp 0x54477e
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov ebx, eax
jmp case.default.0x543f43
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6e1af0]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae8]
fadd qword [esp + 0x14]
jmp 0x5454e0
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
cmp eax, 0xd
ja case.default.0x543f43
jmp dword [eax*4 + 0x545970]
lea ecx, [esp + 0x34]
push ecx
push 0x64
push 0x63
jmp 0x544f70
lea edx, [esp + 0x34]
push edx
push 0x64
push 0x63
jmp 0x543ff0
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0950]
jmp 0x5454e0
lea ecx, [esp + 0x34]
push ecx
push 0x6a
push 0x69
push 9
jmp 0x543ff2
lea edx, [esp + 0x34]
push edx
push 0x6a
push 0x69
push 0xa
jmp 0x543ff2
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
add esi, 8
push 7
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 6
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov edx, ebx
shr edx, 0x1f
add ebx, edx
jmp 0x544fb5
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6e1af0]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae8]
fadd qword [esp + 0x14]
jmp 0x5454e0
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
cmp eax, 0xa
ja case.default.0x543f43
jmp dword [eax*4 + 0x5459a8]
lea ecx, [esp + 0x34]
push ecx
push 0x64
push 0x63
jmp 0x543ff0
lea edx, [esp + 0x34]
push edx
push 0x64
push 0x63
jmp 0x544f70
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0950]
jmp 0x5454e0
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov edx, ebx
shr edx, 0x1f
add ebx, edx
jmp 0x545104
add esi, 8
push 7
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 6
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov eax, ebx
shr eax, 0x1f
add ebx, eax
jmp 0x544fb5
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6e1af0]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae8]
fadd qword [esp + 0x14]
jmp 0x5454e0
add esi, 8
push 9
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 8
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 9
ja case.default.0x543f43
jmp dword [eax*4 + 0x5459d4]
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
cmp al, 0xfd
jbe 0x544d59
push 0x63
jmp 0x544d5b
push 0x64
push 5
lea ecx, [esp + 0x28]
call fcn.0061dbc0
push ecx
lea edx, [esp + 0x24]
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0061d790
lea eax, [esp + 0x58]
push eax
call fcn.0061ca80
add esp, 8
mov edi, eax
mov ecx, dword [edi + 8]
mov eax, dword [0x6dd1fc]
mov esi, ecx
mov byte [esp + 0x80], 5
cmp eax, esi
mov dword [esp + 0x14], esi
jae 0x544da6
mov esi, eax
mov dword [esp + 0x14], esi
lea edx, [esp + 0x34]
cmp edx, edi
jne 0x544e1c
mov edi, eax
mov eax, dword [esp + 0x3c]
cmp eax, esi
jae 0x544dbd
call fcn.006a6707
lea ecx, [esp + 0x34]
call fcn.00414b70
mov eax, dword [esp + 0x3c]
sub eax, esi
cmp eax, edi
jae 0x544dd2
mov edi, eax
test edi, edi
jbe 0x544e0e
mov ecx, dword [esp + 0x38]
sub eax, edi
add ecx, esi
push eax
lea edx, [edi + ecx]
push edx
push ecx
call fcn.006a6c70
mov esi, dword [esp + 0x48]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x34]
push 0
push esi
call fcn.00414230
test al, al
je 0x544e0e
mov edx, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
mov byte [esi + edx], 0
lea ecx, [esp + 0x34]
call fcn.00414b70
jmp 0x544f29
test esi, esi
jbe 0x544e92
cmp esi, ecx
jne 0x544e92
mov eax, dword [edi + 4]
test eax, eax
jne 0x544e30
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x544e92
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x544e59
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x544e50
cmp al, 0xff
je 0x544e50
dec al
mov byte [ecx], al
jmp 0x544e59
push ecx
call fcn.006a64d0
add esp, 4
xor ecx, ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], ecx
mov eax, dword [edi + 4]
cmp eax, ecx
jne 0x544e73
mov eax, 0x6dd1f8
mov dword [esp + 0x38], eax
mov ecx, dword [edi + 8]
mov dword [esp + 0x3c], ecx
mov ecx, dword [edi + 0xc]
mov dword [esp + 0x40], ecx
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x544f29
cmp esi, 0xfffffffd
jbe 0x544e9c
call fcn.006a64db
mov edx, dword [esp + 0x38]
test edx, edx
je 0x544ec4
mov al, byte [edx - 1]
test al, al
je 0x544ec4
cmp al, 0xff
je 0x544ec4
test esi, esi
jne 0x544eed
dec al
push esi
lea ecx, [esp + 0x38]
mov byte [edx - 1], al
call fcn.004138c0
jmp 0x544f29
test esi, esi
jne 0x544ed5
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
jmp 0x544f29
mov eax, dword [esp + 0x40]
cmp eax, 0x1f
ja 0x544ee2
cmp eax, esi
jae 0x544efb
push 1
lea ecx, [esp + 0x38]
call fcn.004138c0
push esi
lea ecx, [esp + 0x38]
call fcn.00414a60
mov edx, dword [esp + 0x38]
mov esi, dword [edi + 4]
test esi, esi
jne 0x544f07
mov esi, 0x6dd1f8
mov eax, dword [esp + 0x14]
mov edi, edx
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 [esp + 0x38]
mov dword [esp + 0x3c], eax
mov byte [eax + ecx], 0
mov ecx, dword [esp + 0x58]
mov byte [esp + 0x80], 3
test ecx, ecx
je case.default.0x543f43
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x544f4f
cmp al, 0xff
je 0x544f4f
dec al
mov byte [ecx], al
jmp case.default.0x543f43
push ecx
call fcn.006a64d0
add esp, 4
jmp case.default.0x543f43
lea edx, [esp + 0x34]
push edx
push 0x6a
push 0x69
push 7
jmp 0x544f72
lea eax, [esp + 0x34]
push eax
push 0x6a
push 0x69
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and al, 0x40
mov ecx, esi
push eax
call fcn.0059c6f0
jmp case.default.0x543f43
add esi, 8
push 8
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 5
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov eax, ebx
shr eax, 0x1f
add ebx, eax
push 7
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
shl eax, 5
add ebx, eax
push ebx
lea edx, [esp + 0x68]
push 0x713498
push edx
call fcn.006a6fa5
add esp, 0xc
xor ebx, ebx
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
jne 0x5455ae
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x545001
call fcn.006a64db
mov edi, dword [esp + 0x38]
xor esi, esi
cmp edi, esi
je 0x545505
mov al, byte [edi - 1]
test al, al
je 0x545505
cmp al, 0xff
je 0x545505
cmp ebx, esi
jne 0x545576
dec al
mov byte [edi - 1], al
jmp 0x54552a
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
push 5
mov dword [esp + 0x28], eax
mov ecx, esi
fild dword [esp + 0x28]
fmul qword [0x6de580]
fstp qword [esp + 0x18]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fadd qword [esp + 0x14]
jmp 0x5454e0
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 7
ja case.default.0x543f43
jmp dword [eax*4 + 0x5459fc]
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae0]
jmp 0x5454e0
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e1ae0]
jmp 0x5454e0
add esi, 8
push 6
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
mov ecx, eax
shl ecx, 6
sub ecx, eax
mov eax, 0x80808081
imul ecx
mov ebx, edx
add ebx, ecx
sar ebx, 7
mov ecx, ebx
shr ecx, 0x1f
add ebx, ecx
push 5
mov ecx, esi
call fcn.0061daa0
and eax, 0xff
shl eax, 6
jmp 0x544fc4
push 5
jmp 0x544322
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6df3f8]
jmp 0x5454e0
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
lea ecx, [eax + eax*4]
lea ecx, [ecx + ecx*4]
shl ecx, 2
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
mov ebx, edx
jmp case.default.0x543f43
mov ecx, dword [esp + 0x14]
and ecx, 0xff
lea eax, [ecx - 1]
cmp eax, 0xf
ja case.default.0x543f43
jmp dword [eax*4 + 0x545a1c]
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
mov eax, dword [esp + 0x14]
and eax, 0xff
dec eax
cmp eax, 0xf
ja case.default.0x543f43
jmp dword [eax*4 + 0x545a5c]
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
fmul qword [0x6e0958]
jmp 0x5454e0
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
and eax, 0xff
mov ebx, eax
jmp case.default.0x543f43
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 0xa
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 5
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 6
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
jmp 0x5454da
push 7
lea ecx, [esi + 8]
call fcn.0061daa0
movsx edx, al
mov dword [esp + 0x24], edx
fild dword [esp + 0x24]
jmp 0x5454da
push 8
lea ecx, [esi + 8]
call fcn.0061daa0
movsx eax, al
mov dword [esp + 0x24], eax
fild dword [esp + 0x24]
jmp 0x5454da
push 9
lea ecx, [esi + 8]
call fcn.0061daa0
movsx ecx, al
mov dword [esp + 0x24], ecx
fild dword [esp + 0x24]
fmul qword [0x6e1ad0]
fstp qword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push edx
push eax
lea ecx, [esp + 0x6c]
push str._.2f
push ecx
call fcn.006a6fa5
add esp, 0x10
jmp 0x544fdb
cmp ebx, esi
jne 0x54553c
cmp edi, esi
je 0x54552a
mov al, byte [edi - 1]
lea ecx, [edi - 1]
test al, al
je 0x545521
cmp al, 0xff
je 0x545521
dec al
mov byte [ecx], al
jmp 0x54552a
push ecx
call fcn.006a64d0
add esp, 4
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], esi
jmp 0x5455b2
mov eax, dword [esp + 0x40]
cmp eax, 0x1f
ja 0x545549
cmp eax, ebx
jae 0x545584
cmp edi, esi
je 0x54556a
mov al, byte [edi - 1]
lea ecx, [edi - 1]
test al, al
je 0x545561
cmp al, 0xff
je 0x545561
dec al
mov byte [ecx], al
jmp 0x54556a
push ecx
call fcn.006a64d0
add esp, 4
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
push ebx
lea ecx, [esp + 0x38]
call fcn.00414a60
mov edi, dword [esp + 0x38]
mov ecx, ebx
lea esi, [esp + 0x64]
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 + 0x38]
mov dword [esp + 0x3c], ebx
mov byte [ecx + ebx], 0
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
jmp 0x5455b2
mov edi, dword [esp + 0x38]
mov ebx, dword [ebp + 8]
mov dl, byte [esp + 0x34]
xor eax, eax
mov esi, ecx
mov byte [ebx], dl
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov dword [ebx + 0xc], eax
mov eax, dword [0x6dd1fc]
mov dword [esp + 0x14], esi
cmp eax, esi
jae 0x5455db
mov dword [esp + 0x14], eax
mov esi, eax
lea edx, [esp + 0x34]
cmp ebx, edx
jne 0x5456bf
mov edi, eax
test esi, esi
mov dword [esp + 0x14], edi
jbe 0x5455f6
call fcn.006a6707
mov eax, dword [ebx + 4]
test eax, eax
mov dword [esp + 0x24], eax
je 0x545634
mov al, byte [eax - 1]
test al, al
je 0x545634
cmp al, 0xff
je 0x545634
push 1
mov ecx, ebx
call fcn.004138c0
mov edi, dword [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
mov eax, dword [esp + 0x24]
not ecx
dec ecx
push ecx
push eax
mov ecx, ebx
call fcn.00414050
mov edi, dword [esp + 0x14]
mov eax, dword [ebx + 8]
sub eax, esi
cmp eax, edi
jae 0x545643
mov dword [esp + 0x14], eax
mov edi, eax
test edi, edi
jbe 0x54567e
mov ecx, dword [ebx + 4]
sub eax, edi
add esi, ecx
push eax
lea ecx, [esi + edi]
push ecx
push esi
call fcn.006a6c70
mov edi, dword [ebx + 8]
mov eax, dword [esp + 0x20]
add esp, 0xc
sub edi, eax
mov ecx, ebx
push 0
push edi
call fcn.00414230
test al, al
je 0x54567e
mov eax, dword [ebx + 4]
mov dword [ebx + 8], edi
add eax, edi
mov byte [eax], 0
mov esi, dword [ebx + 4]
test esi, esi
je 0x5457c7
mov al, byte [esi - 1]
test al, al
je 0x5457c7
cmp al, 0xff
je 0x5457c7
push 1
mov ecx, ebx
call fcn.004138c0
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push esi
mov ecx, ebx
call fcn.00414050
jmp 0x5457c7
xor edx, edx
cmp esi, edx
jbe 0x545703
cmp esi, ecx
jne 0x545703
cmp edi, edx
mov eax, 0x6dd1f8
je 0x5456d4
mov eax, edi
cmp byte [eax - 1], 0xfe
jae 0x545703
cmp edi, edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
mov eax, 0x6dd1f8
je 0x5456ee
mov eax, edi
mov edx, dword [esp + 0x40]
mov dword [ebx + 4], eax
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
inc byte [eax - 1]
jmp 0x5457c7
cmp esi, 0xfffffffd
jbe 0x545713
call fcn.006a64db
mov edi, dword [esp + 0x38]
xor edx, edx
mov ecx, dword [ebx + 4]
cmp ecx, edx
je 0x54573c
mov al, byte [ecx - 1]
test al, al
je 0x54573c
cmp al, 0xff
je 0x54573c
cmp esi, edx
jne 0x54578a
dec al
mov byte [ecx - 1], al
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
jmp 0x5457c7
cmp esi, edx
jne 0x545775
cmp ecx, edx
je 0x54576a
mov al, byte [ecx - 1]
dec ecx
test al, al
je 0x54575f
cmp al, 0xff
je 0x54575f
dec al
mov byte [ecx], al
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
jmp 0x5457c7
push ecx
call fcn.006a64d0
add esp, 4
xor edx, edx
mov dword [ebx + 4], edx
mov dword [ebx + 8], edx
mov dword [ebx + 0xc], edx
jmp 0x5457c7
mov eax, dword [ebx + 0xc]
cmp eax, 0x1f
ja 0x545781
cmp eax, esi
jae 0x545798
push 1
mov ecx, ebx
call fcn.004138c0
push esi
mov ecx, ebx
call fcn.00414a60
mov edi, dword [esp + 0x38]
xor edx, edx
cmp edi, edx
mov eax, 0x6dd1f8
je 0x5457a3
mov eax, edi
mov edi, dword [ebx + 4]
mov ecx, esi
mov esi, eax
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 eax, dword [ebx + 4]
add eax, ecx
mov dword [ebx + 8], ecx
mov byte [eax], 0
mov dword [esp + 0x30], 1
lea ecx, [esp + 0x20]
mov byte [esp + 0x80], 2
call fcn.0061d8c0
mov eax, dword [esp + 0x38]
xor esi, esi
cmp eax, esi
je 0x545807
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5457fe
cmp al, 0xff
je 0x5457fe
dec al
mov byte [ecx], al
jmp 0x545807
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [ebp + 0xc]
mov dword [esp + 0x38], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], esi
mov byte [esp + 0x80], 0
call fcn.0061d8c0
mov ecx, dword [esp + 0x78]
pop edi
mov eax, ebx
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 8