Function at 0x47e4d0
Capabilities:
Check os version

Disassembly:
push 0xffffffffffffffff
push 0x56648b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xb0
push ebx
push ebp
xor eax, eax
push esi
push edi
mov esi, ecx
mov dword [esp + 0x34], eax
mov cl, byte [esp + 0x33]
mov dword [esp + 0xc8], 1
mov byte [esp + 0x18], cl
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x38]
mov byte [esp + 0xc8], 2
call fcn.00531800
push 6
push 0x59c22c
lea ecx, [esp + 0x1c]
mov byte [esp + 0xd0], 3
call fcn.005318a0
push 4
lea ecx, [esp + 0xd8]
mov byte [esp + 0xcc], 4
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
call fcn.00531ac0
mov bl, al
push 5
and ebx, 0xff
lea ecx, [esp + 0xd8]
shl ebx, 8
call fcn.00531ac0
and eax, 0xff
add eax, ebx
cmp eax, 0x101
jg 0x47e907
je 0x47e7b7
dec eax
cmp eax, 5
ja case.default.0x47f08e
jmp dword [eax*4 + 0x47f6c4]
mov al, byte [esi + 0x36]
and eax, 3
cmp eax, 3
ja case.default.0x47e5b2
jmp dword [eax*4 + 0x47f6dc]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1610
jmp 0x47e5f1
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1777
push eax
jmp 0x47e5f2
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1778
push ecx
jmp 0x47e5f2
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1779
push edx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x54]
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 + 0xc8], 5
cmp eax, ebx
jae 0x47e63a
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47e65f
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
jmp 0x47e6e6
test ebx, ebx
jbe 0x47e6ac
cmp ebx, ecx
jne 0x47e6ac
mov eax, dword [esi + 4]
test eax, eax
jne 0x47e673
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47e6ac
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47e690
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x47e6e6
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47e6e6
mov esi, dword [esi + 4]
test esi, esi
jne 0x47e6c8
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
call fcn.00404d50
mov eax, dword [esp + 0x54]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x47f08e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x47f499
cmp al, 0xff
je 0x47f499
dec al
mov byte [ecx], al
jmp case.default.0x47f08e
mov dl, byte [esi + 0x37]
lea ecx, [esp + 0x18]
push ecx
push 0x1107
and dl, 8
push 0x1108
push edx
jmp 0x47efeb
xor eax, eax
mov al, byte [esi + 0x34]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x577838]
fstp qword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
lea ecx, [esp + 0x44]
push str._.2f
push ecx
call fcn.00556aa4
add esp, 0x10
jmp 0x47f00e
xor ecx, ecx
mov cl, byte [esi + 0x36]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x577830]
fsub qword [0x5733d8]
jmp 0x47e747
xor edx, edx
mov dl, byte [esi + 0x34]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x577830]
fsub qword [0x5733d8]
jmp 0x47e747
xor eax, eax
mov al, byte [esi + 0x38]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fsub qword [0x5733d8]
jmp 0x47e747
mov al, byte [esi + 0x34]
push ecx
test al, al
jne 0x47e7cd
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1658
push ecx
jmp 0x47e7d9
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1659
push edx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.00531810
lea ecx, [esp + 0xb4]
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 + 0xc8], 6
cmp eax, ebx
jae 0x47e824
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47e858
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
test ebx, ebx
jbe 0x47e8b7
cmp ebx, ecx
jne 0x47e8b7
mov eax, dword [esi + 4]
test eax, eax
jne 0x47e86c
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47e8b7
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47e889
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xb4]
jmp 0x47e6f2
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47e8f3
mov esi, dword [esi + 4]
test esi, esi
jne 0x47e8d3
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0xb4]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
cmp eax, 0x201
jg 0x47ebdb
je 0x47ebae
add eax, 0xfffffefe
cmp eax, 0xa
ja case.default.0x47f08e
jmp dword [eax*4 + 0x47f6ec]
mov al, byte [esi + 0x34]
and eax, 7
cmp eax, 4
ja case.default.0x47e938
jmp dword [eax*4 + 0x47f718]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x47e996
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3156
push eax
jmp 0x47e996
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
jmp 0x47e995
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3158
push edx
jmp 0x47e996
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1657
push eax
jmp 0x47e996
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x12ff
push ecx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.00531810
lea eax, [esp + 0xa4]
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 + 0xc8], 7
cmp eax, ebx
jae 0x47e9e1
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47ea15
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
test ebx, ebx
jbe 0x47ea74
cmp ebx, ecx
jne 0x47ea74
mov eax, dword [esi + 4]
test eax, eax
jne 0x47ea29
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47ea74
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47ea46
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0xa4]
jmp 0x47e6f2
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47eab0
mov esi, dword [esi + 4]
test esi, esi
jne 0x47ea90
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0xa4]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
xor edx, edx
mov dl, byte [esi + 0x35]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x34]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x47e741
xor ecx, ecx
mov cl, byte [esi + 0x34]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor edx, edx
mov dl, byte [esi + 0x35]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x36]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor ecx, ecx
mov cl, byte [esi + 0x37]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor edx, edx
mov dl, byte [esi + 0x38]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x39]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor ecx, ecx
mov cl, byte [esi + 0x34]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor edx, edx
mov dl, byte [esi + 0x35]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
xor ecx, ecx
mov al, byte [esi + 0x37]
mov cl, byte [esi + 0x36]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
mov dword [esp + 0x10], ecx
fmul qword [0x577828]
fild dword [esp + 0x10]
fmul qword [0x577820]
faddp st(1)
jmp 0x47eff6
cmp eax, 0x301
jg 0x47f06f
je 0x47efd6
add eax, 0xfffffdfe
cmp eax, 0xa
ja case.default.0x47f08e
jmp dword [eax*4 + 0x47f72c]
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x35]
mov al, byte [esi + 0x34]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
mov dword [esp + 0x10], eax
fmul qword [0x577818]
fild dword [esp + 0x10]
fmul qword [0x5721a0]
faddp st(1)
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x39]
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 1
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
jmp 0x47eff6
xor edx, edx
mov dl, byte [esi + 0x34]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x35]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x572c20]
jmp 0x47e747
xor ecx, ecx
mov cl, byte [esi + 0x34]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x577830]
fsub qword [0x5733d8]
jmp 0x47e747
mov al, byte [esi + 0x34]
and eax, 3
cmp eax, 3
ja case.default.0x47eca4
jmp dword [eax*4 + 0x47f758]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315a
jmp 0x47ece3
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1539
push eax
jmp 0x47ece4
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315b
push ecx
jmp 0x47ece4
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x84]
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 + 0xc8], 8
cmp eax, ebx
jae 0x47ed2f
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47ed63
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x84]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
test ebx, ebx
jbe 0x47edc2
cmp ebx, ecx
jne 0x47edc2
mov eax, dword [esi + 4]
test eax, eax
jne 0x47ed77
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47edc2
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47ed94
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x84]
jmp 0x47e6f2
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47edfe
mov esi, dword [esi + 4]
test esi, esi
jne 0x47edde
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x84]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
mov al, byte [esi + 0x35]
and eax, 7
cmp eax, 3
ja case.default.0x47ee1d
jmp dword [eax*4 + 0x47f768]
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x315c
jmp 0x47ee5c
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x315d
push eax
jmp 0x47ee5d
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315e
push ecx
jmp 0x47ee5d
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1539
push edx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push eax
call fcn.00531810
lea ecx, [esp + 0x64]
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 + 0xc8], 9
cmp eax, ebx
jae 0x47eea5
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47eed6
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x64]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
test ebx, ebx
jbe 0x47ef32
cmp ebx, ecx
jne 0x47ef32
mov eax, dword [esi + 4]
test eax, eax
jne 0x47eeea
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47ef32
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47ef07
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x64]
jmp 0x47e6f2
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47ef6e
mov esi, dword [esi + 4]
test esi, esi
jne 0x47ef4e
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x64]
mov byte [esp + 0xc8], 4
jmp 0x47e6f2
xor edx, edx
mov dl, byte [esi + 0x35]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [0x574f58]
jmp 0x47eff6
xor eax, eax
mov al, byte [esi + 0x34]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
jmp 0x47e741
mov dl, byte [esi + 0x38]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x10
push 0x1252
push edx
jmp 0x47efeb
mov cl, byte [esi + 0x38]
lea eax, [esp + 0x18]
push eax
push 0x1243
and cl, 0x20
push 0x1252
push ecx
jmp 0x47efeb
mov al, byte [esi + 0x35]
lea edx, [esp + 0x18]
push edx
push 0x1243
push 0x1252
and al, 0x80
push eax
mov ecx, esi
call fcn.00451ba0
fld qword [esp + 0x28]
call fcn.00556e88
push eax
lea edx, [esp + 0x40]
push 0x59bb6c
push edx
call fcn.00556aa4
add esp, 0xc
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x47f52f
lea edi, [esp + 0x3c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
cmp ebx, 0xfffffffd
jbe 0x47f034
call fcn.0055636b
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x47f4d8
mov al, byte [edi - 1]
test al, al
je 0x47f4d8
cmp al, 0xff
je 0x47f4d8
test ebx, ebx
jne 0x47f501
dec al
push ebx
lea ecx, [esp + 0x1c]
mov byte [edi - 1], al
call fcn.00404bb0
jmp 0x47f52f
cmp eax, 0x401
jg 0x47f4a7
je 0x47f29c
add eax, 0xfffffcfe
cmp eax, 4
ja case.default.0x47f08e
jmp dword [eax*4 + 0x47f778]
xor eax, eax
xor ebp, ebp
mov al, byte [esi + 0x37]
sub eax, ebp
je 0x47f0d3
sub eax, 0x7f
je 0x47f0c4
dec eax
push ecx
je 0x47f0b6
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1539
jmp 0x47f0df
mov edx, esp
mov dword [esp + 0x14], esp
push 0x3155
push edx
jmp 0x47f0e0
push ecx
mov eax, esp
mov dword [esp + 0x14], esp
push 0x3159
push eax
jmp 0x47f0e0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x3157
push ecx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.00531810
lea eax, [esp + 0x74]
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 + 0xc8], 0xa
cmp eax, ebx
jae 0x47f128
mov ebx, eax
lea edx, [esp + 0x18]
cmp edx, esi
jne 0x47f159
push eax
push ebx
lea ecx, [esp + 0x20]
call fcn.00404c30
push ebp
push ebp
lea ecx, [esp + 0x20]
call fcn.00404c30
mov eax, dword [esp + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x47e6f4
cmp ebx, ebp
jbe 0x47f1e1
cmp ebx, ecx
jne 0x47f1e1
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x47f171
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47f1e1
mov eax, dword [esp + 0x1c]
cmp eax, ebp
je 0x47f19c
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x47f193
cmp al, 0xff
je 0x47f193
dec al
mov byte [ecx], al
jmp 0x47f19c
push ecx
call fcn.00556360
add esp, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov eax, dword [esi + 4]
cmp eax, ebp
jne 0x47f1b4
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [esp + 0xc8], 4
mov byte [eax - 1], cl
mov eax, dword [esp + 0x74]
cmp eax, ebp
jmp 0x47e6f4
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47f21b
mov esi, dword [esi + 4]
cmp esi, ebp
jne 0x47f1fd
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
call fcn.00404d50
mov eax, dword [esp + 0x74]
mov byte [esp + 0xc8], 4
cmp eax, ebp
jmp 0x47e6f4
movsx ecx, byte [esi + 0x39]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [0x577810]
fadd qword [0x577808]
jmp 0x47eff6
mov al, byte [esi + 0x38]
lea edx, [esp + 0x18]
push edx
push 0x1243
push 0x1252
and al, 0x10
jmp 0x47efea
mov dl, byte [esi + 0x35]
lea ecx, [esp + 0x18]
push ecx
push 0x1243
and dl, 0x40
push 0x1252
push edx
jmp 0x47efeb
movsx eax, byte [esi + 0x39]
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fmul qword [0x577810]
fadd qword [0x577808]
jmp 0x47eff6
mov al, byte [esi + 0x34]
and eax, 3
cmp eax, 3
ja case.default.0x47f2ab
jmp dword [eax*4 + 0x47f78c]
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x1243
push ecx
jmp 0x47f2ce
push ecx
mov edx, esp
mov dword [esp + 0x14], esp
push 0x1252
push edx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
mov byte [esi + 0x97], 0
jmp case.default.0x47f2ab
push ecx
mov ecx, esi
mov eax, esp
mov dword [esp + 0x14], esp
push 0x1305
push eax
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
mov byte [esi + 0x97], 1
jmp case.default.0x47f2ab
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x315f
push ecx
mov ecx, esi
call fcn.00451b00
lea ecx, [esp + 0x18]
call fcn.005319b0
mov byte [esi + 0x97], 2
push ecx
lea edx, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x14], esp
push edx
call fcn.00531810
lea eax, [esp + 0x94]
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 + 0xc8], 0xb
cmp edi, ebx
jae 0x47f36d
mov ebx, edi
lea ecx, [esp + 0x18]
cmp ecx, esi
jne 0x47f3e2
cmp dword [esp + 0x20], ebx
jae 0x47f380
call fcn.00556597
lea ecx, [esp + 0x18]
call fcn.00405210
mov eax, dword [esp + 0x20]
sub eax, ebx
cmp eax, edi
jae 0x47f395
mov edi, eax
test edi, edi
jbe 0x47f3d0
mov edx, dword [esp + 0x1c]
sub eax, edi
push eax
lea ecx, [ebx + edx]
lea edx, [edi + ecx]
push edx
push ecx
call fcn.00556b00
mov esi, dword [esp + 0x2c]
add esp, 0xc
sub esi, edi
lea ecx, [esp + 0x18]
push 0
push esi
call fcn.00404d70
test al, al
je 0x47f3d0
push esi
lea ecx, [esp + 0x1c]
call fcn.00404d50
push 0
push 0
lea ecx, [esp + 0x20]
call fcn.00404c30
jmp 0x47f46b
test ebx, ebx
jbe 0x47f42f
cmp ebx, eax
jne 0x47f42f
mov eax, dword [esi + 4]
test eax, eax
jne 0x47f3f6
mov eax, 0x572184
cmp byte [eax - 1], 0xfe
jae 0x47f42f
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
mov eax, dword [esi + 4]
test eax, eax
jne 0x47f413
mov eax, 0x572184
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x20], ecx
mov esi, dword [esi + 0xc]
mov dword [esp + 0x24], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x47f46b
push 1
push ebx
lea ecx, [esp + 0x20]
call fcn.00404d70
test al, al
je 0x47f46b
mov esi, dword [esi + 4]
test esi, esi
jne 0x47f44b
mov esi, 0x572184
mov edi, dword [esp + 0x1c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov eax, dword [esp + 0x94]
mov byte [esp + 0xc8], 4
test eax, eax
je case.default.0x47f08e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x47f499
cmp al, 0xff
je 0x47f499
dec al
mov byte [ecx], al
jmp case.default.0x47f08e
push ecx
call fcn.00556360
add esp, 4
jmp case.default.0x47f08e
cmp eax, 0x402
jne case.default.0x47f08e
xor edx, edx
xor eax, eax
mov dl, byte [esi + 0x34]
mov al, byte [esi + 0x35]
shl edx, 8
add edx, eax
xor ecx, ecx
mov cl, byte [esi + 0x36]
shl edx, 8
add edx, ecx
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
jmp 0x47eff6
test ebx, ebx
jne 0x47f4e9
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
jmp 0x47f52f
mov eax, dword [esp + 0x24]
cmp eax, 0x1f
ja 0x47f4f6
cmp eax, ebx
jae 0x47f50f
push 1
lea ecx, [esp + 0x1c]
call fcn.00404bb0
push ebx
lea ecx, [esp + 0x1c]
call fcn.00405100
mov edi, dword [esp + 0x1c]
mov ecx, ebx
lea esi, [esp + 0x3c]
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 + 0x1c]
mov dword [esp + 0x20], ebx
mov byte [ebx + ecx], 0
mov ebp, dword [esp + 0xd0]
mov dl, byte [esp + 0x18]
xor edi, edi
mov byte [ebp], dl
mov edx, dword [esp + 0x20]
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov esi, dword [0x57217c]
mov ebx, edx
cmp esi, ebx
jae 0x47f55a
mov ebx, esi
lea eax, [esp + 0x18]
cmp ebp, eax
jne 0x47f5bc
cmp ebx, edi
jbe 0x47f56b
call fcn.00556597
mov ecx, ebp
call fcn.00405210
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x47f57d
mov esi, eax
cmp esi, edi
jbe 0x47f5b3
mov ecx, dword [ebp + 4]
sub eax, esi
add ecx, ebx
push eax
lea edx, [esi + ecx]
push edx
push ecx
call fcn.00556b00
mov edi, dword [ebp + 8]
add esp, 0xc
sub edi, esi
mov ecx, ebp
push 0
push edi
call fcn.00404d70
test al, al
je 0x47f5b1
push edi
mov ecx, ebp
call fcn.00404d50
xor edi, edi
mov ecx, ebp
call fcn.00405210
jmp 0x47f635
cmp ebx, edi
jbe 0x47f5fd
cmp ebx, edx
jne 0x47f5fd
mov eax, dword [esp + 0x1c]
mov ecx, 0x572184
cmp eax, edi
je 0x47f5d3
mov ecx, eax
cmp byte [ecx - 1], 0xfe
jae 0x47f5fd
cmp eax, edi
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
jne 0x47f5eb
mov eax, 0x572184
mov dword [ebp + 8], edx
mov edx, dword [esp + 0x24]
mov dword [ebp + 4], eax
mov dword [ebp + 0xc], edx
inc byte [eax - 1]
jmp 0x47f635
push 1
push ebx
mov ecx, ebp
call fcn.00404d70
test al, al
je 0x47f635
mov esi, dword [esp + 0x1c]
cmp esi, edi
jne 0x47f618
mov esi, 0x572184
mov edi, dword [ebp + 4]
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]
mov ecx, ebp
call fcn.00404d50
xor edi, edi
mov dword [esp + 0x34], 1
lea ecx, [esp + 0x14]
mov byte [esp + 0xc8], 3
call fcn.00531940
lea ecx, [esp + 0x38]
mov byte [esp + 0xc8], 2
call fcn.00531940
mov eax, dword [esp + 0x1c]
cmp eax, edi
je 0x47f684
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x47f67b
cmp al, 0xff
je 0x47f67b
dec al
mov byte [ecx], al
jmp 0x47f684
push ecx
call fcn.00556360
add esp, 4
lea ecx, [esp + 0xd4]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
mov byte [esp + 0xc8], 0
call fcn.00531940
mov ecx, dword [esp + 0xc0]
pop edi
mov eax, ebp
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xbc
ret 8